我有兴趣做以下事情。我想维护一个文档的主副本,然后为该文档分支可能包含一些小修改。我希望修改本文档的分支,以便与我对主要文档所做的任何更改合并。
就像能够更新“模板”和该模板的实例化一样。 做这样的事情有什么好的工具?你能做到吗? (您可以假设文档只是文本文件,没有花哨的格式。)
答案 0 :(得分:0)
是的,svn可以做到这一点。对于svn,无论是管理源代码还是其他txt文件都没有区别。如果您在2个分支上添加文档底部可能不太理想,但我认为任何SCM系统都会在这种情况下发生冲突。
答案 1 :(得分:0)
git也可能是一个选项。看看A successful Git branching model。每个“修改过的文档”都可以视为功能分支,而“模板”则存在于 trunk 中。
使用功能分支也可以使用'svn'。
答案 2 :(得分:0)
如果您的版本化文件是二进制文件而不是文本文件,则在将“模板”中的更改合并到分支版本时会出现问题。所有Microsoft FOrmats(和openoffice压缩文件)都是二进制blob。我知道大多数版本控制系统中的合并都是以行粒度完成的。
除此之外,这是非常可能的。
svn copy trunk/mydoc.txt branches/branch1/mydoc.txt
svn copy trunk/mydoc.txt branches/branch2/mydoc.txt
如果您以后更改了主干中的版本,则可以将更改传播到功能分支。
cd branches/branch1
svn merge http://mysvnserver.tld/reponame/trunk/mydoc.txt
svn commit
cd ../..
cd branches/branch2
svn merge http://mysvnserver.tld/reponame/trunk/mydoc.txt
svn commit
这是简化的程序。最佳做法是不分支和合并单个文件,但最高级别(分支级别)。