Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 在使用mercurial作为subversion的智能本地缓存时维护一个月的历史记录_Svn_Mercurial - Fatal编程技术网

Svn 在使用mercurial作为subversion的智能本地缓存时维护一个月的历史记录

Svn 在使用mercurial作为subversion的智能本地缓存时维护一个月的历史记录,svn,mercurial,Svn,Mercurial,这里也有类似的问题,但它们并不相同,因为它们是关于在一般意义上同时使用mercurial和subversion 通过阅读,有四个选项,hgsubversion、mq、convert和hgsvn。hgsubversion和convert都需要存储库的完整本地副本,而且我的存储库非常大(10+千兆位),主要是二进制签入,对我来说没有用处,所以我不喜欢这个选项。另一方面,mq不允许任何离线历史搜索,因此挫败了希望使用mercurial的主要原因之一 这将选项缩小到使用hgsvn。我已经安装了这个,正在

这里也有类似的问题,但它们并不相同,因为它们是关于在一般意义上同时使用mercurial和subversion

通过阅读,有四个选项,hgsubversion、mq、convert和hgsvn。hgsubversion和convert都需要存储库的完整本地副本,而且我的存储库非常大(10+千兆位),主要是二进制签入,对我来说没有用处,所以我不喜欢这个选项。另一方面,mq不允许任何离线历史搜索,因此挫败了希望使用mercurial的主要原因之一

这将选项缩小到使用hgsvn。我已经安装了这个,正在玩它,它似乎做了我想做的大部分事情。出于各种原因,主要是由于磁盘空间的原因,我并不真正关心六个多月前的历史记录,因此我希望能够只保留六个月的历史记录。但是,当您使用hgimportsvn设置svn树的副本时,您将初始存储库设置为导入,并且当这些初始修订移出六个月的窗口时,无法(使用hgsvn)删除它们

现在看来,这似乎不是一种容易实现自动化的方法。HistEdit扩展确实允许执行我想要的操作,但似乎无法编写脚本。我对MQ的理解是,它不会做我想做的事情,因为它永远不会删除第一个版本,尽管它可能被用来折叠一些中间版本

编辑:尝试澄清一下我的问题

基本上,我想做的是将subversion的最后1000个修订版保存在我的mercurial存储库中。这一点在开始时很容易做到:

hgimportsvn -r$((TRUNKREV-1000)) $TRUNKURL
然而,一周后,我的mercurial存储库中现在有1200个修订,因此我想通过删除/折叠前200个修订,将其再次缩减到1000个


有人知道怎么做吗?

您不能将转换扩展名与--config convert.svn.startrev=startrev选项一起使用吗?

据我所知,这只适用于初始转换。我想做的是在开始时导入最后1000个修订,然后在一周后,当我的hg存储库有1100个条目时,通过合并/删除前100个条目将其缩减为1000个修订。不,您现在不能这样做。也许,浅层克隆可以支持这一点,但它们还远远没有实现。