Svn 多分支Mercurial存储库布局
我有一些准相关的项目,我想版本控制。在SVN中,我会将它们设置为单个项目中的多个目录Svn 多分支Mercurial存储库布局,svn,version-control,project-management,mercurial,Svn,Version Control,Project Management,Mercurial,我有一些准相关的项目,我想版本控制。在SVN中,我会将它们设置为单个项目中的多个目录 /scripts #updates in sync with project1 & project2 /project1 #requires database /project2 #requires database /database 当然,其他SVN布局也可以用于此玩具示例,但此布局具有以下优点: 我可以在分支之间复制文件,同时保留历史记录 我只能查看项目的一个子集,例如svn co repo
/scripts #updates in sync with project1 & project2
/project1 #requires database
/project2 #requires database
/database
当然,其他SVN布局也可以用于此玩具示例,但此布局具有以下优点:
- 我可以在分支之间复制文件,同时保留历史记录
- 我只能查看项目的一个子集,例如
。 如果project1很大,这将节省大量的存储和时间svn co repo/project2;svn公司回购/数据库
- 轻松的存储库管理,因为所有项目都只定义一次用户访问权限
- 多个存储库-丢失在项目之间移动的文件的历史记录
- -似乎停止了,我不确定这个扩展有多稳定
- 具有几乎不相关内容的命名分支
- -不幸的是,我运行的是Ubuntu9.04,它只支持HG1.1.2。否则这看起来是个不错的选择
hg Update-C project1
HGMERGE=/bin/false hg Merge-r project2
hg Revert-a--no backup-r project1
hg Revert--no backup-r project2 path/to/file/in/project2.txt
hg mv path/to/file/in/project2.txt project1/file/path/project2.txt
hg resolve-am
hgcommit-m“将project2.txt复制到project1的合并。”
我在Subversion中为自己的几个项目做过类似的事情,但我的经验是,我最初对某个项目真正归属的感觉通常是正确的,当它不保存历史时,其实没什么大不了的,因为历史实际上只与文件所在的原始项目相关。Wow,感谢命名的分支步骤。这太难看了。我会处理失去历史的问题——无论如何,这是一个相当罕见的案例。实际上,比在项目之间合并更改更大的问题是同步依赖项。即。project1@r50需要database@r50. 这可以用Svn完成,虽然它需要比我上面给出的稍微复杂一些的签出。同步依赖性正是SubRepos和森林所需要的。为了进一步阐述,我认为子副本和森林是一个VSN:而且,在Mercurial的思维模式下,元数据应该显式存储在文件中,而不是隐式附加到文件中,并使用专用VCS命令进行管理。