Mercurial 源代码控制和重新设计

Mercurial 源代码控制和重新设计,mercurial,refactoring,Mercurial,Refactoring,我正在做我自己的开源项目。我最近发布了第一个可行的版本,但我怀疑是否有人在使用它。我是唯一一个在做这件事的人。我正在使用mercurial,我的问题是我正在计划一个相当大的重新设计。没有多少石头会被挖开。如何从源代码控制的角度解决这个问题?只是从当前头继续还是创建一个分支 我多久做一次?有些类可能会消失(分为2个或功能移到其他地方,接口发生变化)。注意:我不知道mercurial(我使用的是git或svn) 首先,因为您是项目中唯一提交代码的人,所以这并不重要。如果其他人贡献代码,这将很重要 我

我正在做我自己的开源项目。我最近发布了第一个可行的版本,但我怀疑是否有人在使用它。我是唯一一个在做这件事的人。我正在使用mercurial,我的问题是我正在计划一个相当大的重新设计。没有多少石头会被挖开。如何从源代码控制的角度解决这个问题?只是从当前头继续还是创建一个分支


我多久做一次?有些类可能会消失(分为2个或功能移到其他地方,接口发生变化)。

注意:我不知道
mercurial
(我使用的是
git
svn

首先,因为您是项目中唯一提交代码的人,所以这并不重要。如果其他人贡献代码,这将很重要

我将创建一个分支(至少在
git
下),并在重新设计之前标记代码的状态

您是否打算维护旧版本(带有错误修复)?我想不是。如果这样做,您可能需要获得两个分支,一个用于版本1,另一个用于重新设计的版本2

也许您希望在旧版本中创建一个分支,并用新版本继续主分支

关于提交的频率,我总是建议经常这样做(例如,至少每天你都在做它,并且可能会针对你引入的每一个主要特性或bug修复)。但每个提交(原则上)都应该保持可编译性,并且应该以某种方式工作(无论这对您意味着什么)

如果您确实明确提到您的开源项目,那将非常有趣


关于注意:我不知道
mercurial
(我正在使用
git
svn

首先,因为您是项目中唯一提交代码的人,所以这并不重要。如果其他人贡献代码,这将很重要

我将创建一个分支(至少在
git
下),并在重新设计之前标记代码的状态

您是否打算维护旧版本(带有错误修复)?我想不是。如果这样做,您可能需要获得两个分支,一个用于版本1,另一个用于重新设计的版本2

也许您希望在旧版本中创建一个分支,并用新版本继续主分支

关于提交的频率,我总是建议经常这样做(例如,至少每天你都在做它,并且可能会针对你引入的每一个主要特性或bug修复)。但每个提交(原则上)都应该保持可编译性,并且应该以某种方式工作(无论这对您意味着什么)

如果您确实明确提到您的开源项目,那将非常有趣


关于

如果有任何代码的当前用户(包括您自己)应该在该代码上停留一段时间,我将分支新版本。当新版本(无论以何种标准衡量)与旧版本相等或更好时,将其合并回去

另一个考虑因素是“如果一个新用户来看我,我会希望他们使用我正在放弃的旧版本,还是尝试我正在制作的版本,这将是一个更加多变的版本”。如果他们应该停留在旧版本上,那么再次分支使用新版本

更可能的是,尽管你的选择介于两者之间

  • 只是继续从头做起(“任何人都不应该被鼓励使用旧版本”)或者:
  • 分支出一个“稳定”或“发布1”分支(“如果你想要一些旧的但功能完整/功能合理的东西,就使用这个分支”),然后从头开始做新的工作

如果有任何当前的代码用户(包括您自己)应该在新版本上停留一段时间,我会将其分支。当新版本(无论以何种标准衡量)与旧版本相等或更好时,将其合并回去

另一个考虑因素是“如果一个新用户来看我,我会希望他们使用我正在放弃的旧版本,还是尝试我正在制作的版本,这将是一个更加多变的版本”。如果他们应该停留在旧版本上,那么再次分支使用新版本

更可能的是,尽管你的选择介于两者之间

  • 只是继续从头做起(“任何人都不应该被鼓励使用旧版本”)或者:
  • 分支出一个“稳定”或“发布1”分支(“如果你想要一些旧的但功能完整/功能合理的东西,就使用这个分支”),然后从头开始做新的工作

是的,我不打算修复bug,因为我不认为有人在使用它(我没有做过任何“营销”,它是一个“利基产品”)。看见如果你有兴趣,我建议你看看维基。是的,我不打算做错误修复,因为我不认为有人在使用它(没有做任何“营销”和它是一个“利基产品”)。看见如果你感兴趣的话,我建议你看看维基。如果我想回到当前的版本,哪种方法更简单?我想这并不重要吧?我是mercurial的新手,这是我第一个真正的项目(不仅仅是一个供个人使用的脚本)。因此,可能以后我会更喜欢我以前的设计。我使用git而不是mercurial,但我猜这会起到同样的作用:如果你不确定新工作是否“保留”,那么就在分支上进行新工作。如果我想回到当前版本,在哪个选项中会更简单?我想这并不重要吧?我是mercurial的新手,这是我第一个真正的项目(不仅仅是一个供个人使用的脚本)。因此,可能以后我会更喜欢以前的设计。我使用git而不是mercurial,但我猜这也会起到同样的作用:如果你不确定新工作是否“保持”,那么就在分支上进行新工作。