我想执行一个svn更新到一个特定的日期,我可以用svn update -r {2010-10-17}
做到这一点。不幸的是,当遇到外部时,它将在外部进行更新,而不通过-r {2010-10-17}
选项。这导致我们获得基本代码的正确过去版本,但是许多外部版本的最新(不期望)版本。更新svn结帐到特定的日期,包括外部
如何更新到特定的修订版或日期并通过外部文件正确递归?
(注:据我所知,这里的错误可能是使用的外部没有指定明确的修订版。)
我想执行一个svn更新到一个特定的日期,我可以用svn update -r {2010-10-17}
做到这一点。不幸的是,当遇到外部时,它将在外部进行更新,而不通过-r {2010-10-17}
选项。这导致我们获得基本代码的正确过去版本,但是许多外部版本的最新(不期望)版本。更新svn结帐到特定的日期,包括外部
如何更新到特定的修订版或日期并通过外部文件正确递归?
(注:据我所知,这里的错误可能是使用的外部没有指定明确的修订版。)
我希望,任何人迟早都会将我的常识逻辑(仅限于某些区域的目录类型外部)实施到bash和cmd-script中,我们将得到“确定性答案”到这个重复的问题
您的基本任务是:
svn up
你的超级回购在过去需要点(更新日期/和无时间/是,顺便说一句,不是一个最好的选择,但 - apllicable)svn propget svn:externals -R
(-R为了检查整个树没有很多cd
). - https://subversion.assembla.com/svn/subversion-trouble-shooting/trunk/lib lib
):cd to串/相对于第一场,也就是,在转弯的最后一个字段,是根的相对路径/和svn到同一个点,因为它是superrepo完成:svn update -r {2010-10-17}
至于导致你”会有混合工作副本,但超级会员和外部会处于“过去进行一些修改”状态
注意:
更复杂的情况下用于构建具有外部(实际上嵌套的WC)目录的本地路径的附加示例。
对于
>svn propget svn:externals -R
tags\1.0.1 - -r 2 https://subversion.assembla.com/svn/subversion-trouble-shooting/trunk/[email protected] lib
trunk - https://subversion.assembla.com/svn/subversion-trouble-shooting/trunk/lib lib
决赛路径在我的WC的外部将是(相对于WC-根)
tags\1.0.1\lib
trunk\lib
据我已经能够工作了,你不能在不改变这样做你的外部配置。但是,改变外部配置会改变它给所有人,所以它只是一个提交和更新,你就完成了。
你能解释一下“外部配置”是什么吗?你的意思是svn:externals属性? 如果你的意思是说我们的外部属性应该都使用明确的修订版本号,那么是的,我可能会同意你的意见,但我不能回去编辑许多不属于这种情况的提交。 也许我误解了你的建议。 – pauldoo 2010-11-17 12:31:03
对不起,是的,svn:externals属性。你只在一两个地方有这个权利吗?虽然,现在正在重读你的问题,你想回到过去,这将重置svn:externals属性。所以是的,你应该在你的外部使用明确的修改,现在你将不得不手动去做:) – 2010-11-17 13:05:23
不要写deli妄 – 2013-03-27 20:08:24
我加入的情况下,任何人这个答案正试图更新已选中的Subversion版本库将本地文件日期同步到回购日期,我想这样做我可以做FS时间戳比较。
我做了这个oneliner这样的伎俩(但阅读下面的线使用前):
svn info --show-item last-changed-date -R | xargs -I{} -P1000 -n1 sh -c 'x="{}"; set -x; exec touch -d "${x%% *}" "${x#* }"'
注:的-P1000
指定xargs
应该运行同时副本sh
和touch
来做实际的更新。取决于系统负载,降低它可能是明智的。在基于i3的小型英特尔NUC 1000过程中实际上证明是完美的,使用80-95%的CPU(100%通常意味着CPU过载)。如果有疑问,打开例如htop
并用不同的值进行测试 - 但只运行几秒钟,因为它需要每次从头开始运行。
对于USB HDD上的小型~3GB SVN回购,这需要大约5分钟的时间来运行。
set +x
开启了详细的执行过程,我在执行touch
之前执行了这个操作,以便您可以看到它正在运行。如果您想要非冗长的执行,请删除该命令。
你有没有看到这个:http://stackoverflow.com/questions/683716/subversion-update-externals-to-a-date – 2012-04-17 08:16:37