因此,当涉及到重新编写整个系统时,您是否更愿意为重新编写一个新的回购库,或只是在现有的回购库中新建一个文件夹?新回购或新回购的文件夹?
我问的原因是新的文件夹方法需要一些虽然为目录结构,因为你需要开始像一些东西。
/root
/root/v1/
然后加入
/root/v2
因此,当涉及到重新编写整个系统时,您是否更愿意为重新编写一个新的回购库,或只是在现有的回购库中新建一个文件夹?新回购或新回购的文件夹?
我问的原因是新的文件夹方法需要一些虽然为目录结构,因为你需要开始像一些东西。
/root
/root/v1/
然后加入
/root/v2
你忘了第三个选项:
准确地使用版本控制,以便您不需要为每个版本创建文件夹。
要扩展上述内容:如果新系统与旧系统完全不同 - 完全重写就像您说的那样 - 那么我可能会使用新的存储库。如果重写更加增量,那么我会保留现有的存储库。
添加一个标签,当你开始重新写或做重新写上一个专用分支,这样你可以跟踪在旧代码结束,新的代码从哪里开始的。借助Mercurial或Git等分布式版本控制系统,您可以在服务器上创建另一个克隆以进行重写。
分支是一个非常强大的工具。我写了一个tutorial for Mercurial about branches,你可能会觉得有趣。你看到Alice和Bob在几个分支上并行工作。在你的情况下,你仍然可以在处理新代码时将东西添加到旧代码中。
如果新系统的内部结构不同,但它与系统的其他部分以旧版本相同的方式连接(例如,后端),我将与版本库的新分支一个Web应用程序)。
如果是在内部完全不同的,与系统的比老版不同的方式,其余的接口,那么我会用不同的版本库去,因为它不仅仅是一个重写的新产品。
也是一个很好的方法来看看它。 – hcker2000 2012-01-12 16:47:13
看起来很容易失去一个开始,另一个开始如果你有大量的提交。 – hcker2000 2012-01-12 16:02:33
我已经添加了一些关于跟踪旧代码和新代码的信息。 – 2012-01-12 16:06:34
创建一个版本注释,您可以在其中定义“这是真正的休息” - 点。 – Independent 2012-01-12 16:08:11