我想将每个代码文件夹的.svn
文件夹提交到Hg存储库。问题是很多.svn
子文件夹都是空的,因此无法提交到mercurial存储库。如何提交.svn文件夹到Mercurial存储库?
我发现的一个解决方案是向每个文件夹添加一个空文件,但这很麻烦。没有更简单的方法吗?
我想将每个代码文件夹的.svn
文件夹提交到Hg存储库。问题是很多.svn
子文件夹都是空的,因此无法提交到mercurial存储库。如何提交.svn文件夹到Mercurial存储库?
我发现的一个解决方案是向每个文件夹添加一个空文件,但这很麻烦。没有更简单的方法吗?
当你想在一个svn回购的顶部使用汞,你可以尝试hgsubversion extension。 Hgsubversion使得svn客户端能够与svn服务器交谈。
OTOH如果你坚持在任何地方都有.svn文件夹,你可以使用hgsvn来管理你的并行hg和svn回购结账。但是hgsvn有一个缺点,就是它没有自动重新绑定svn的东西,所以当你不得不将合并的svn历史和本地历史合并时,你不能导出每个本地提交,只有合并提交(即使存在合并时也可以导出每个提交,但第一个本地提交将撤消最近的svn历史记录,并且合并提交将重做它,这会导致svn历史记录存在缺陷)。
更多关于不同svn < - > hg工作流程位于WorkingWithSubversion wiki页面。
我无法使用hgsubversion,因为我的SVN存储库要求(预提交挂钩)每个新文件都应该有'svn:needs-lock'属性 –
您需要为每个文件添加一个空文件。你能做到这一点迅速用:
for thedir in $(find /path/to/repo -type -d -name .svn) ; do
touch $thedir/emptyfile
hg add $thedir/emptyfile
done
伟大的剧本!也许有人可以写一个窗口以及 –
我认为Windows脚本被称为实习生。 ;) –
为什么需要源代码管理下的.svn文件夹? – jgifford25
@jgifford我们必须最终承诺SVN仓库,但是我们每天都使用Mercurial –
@Jader,我们和你们的情况类似,因为我们必须按企业标准使用CVS,但是为了我们的理智,我们正在使用Git。我们不检入CVS文件夹。我们在我们的git repo /目录下工作,并定期将代码拉入包含我们CVS签出的克隆本地存储库/目录中。然后,我们从该CVS签出文件夹提交CVS。 – Vadim