1

我们目前使用VSS源控制管理,但我们要转换到其他系统。 VSS支持在不同项目之间共享单个文件。似乎在流行的单片机系统中只有(?)SVN也提供这个功能(svn:externals)。其他人仅启用共享文件夹。这就是为什么SVN是我们将我们的回购转换为候选人的原因,因为它可能比重新分配我们回购库中所有项目的结构来调整它们到目录共享要容易得多。如何更新SVN的外部自动

但是,SVN外部必须绑定到指定的文件修订版本(我不想考虑将外部绑定到修订版本的可能性,因为这样就不可能获得具有足够外部的历史项目版本) 。这样,当共享文件被修改时,它不影响任何使用该文件作为外部文件的项目。

所以,当你下载这样的一个项目在其最新修订版,你不会得到的修改后的外部的最新版本。有必要手动修改引用该文件的外部属性以使其更新。在类似的情况下,当在当前版本中获得项目时,VSS将为您提供其头版本中的所有文件(包括共享文件)。

我想知道如何使SVN工作类似。当我从一个回购项目获得一个项目的头版本时,我想要在头部修订版中获得所有关联的外部项目。但是我被卡住了,不知道如何直接或间接地实现它。

也许一些脚本?但他们需要做什么,他们应该什么时候运行?当文件被修改时,他们是否应该更新使用共享文件的项目的所有外部属性?还是应该在项目下载后运行,以更新其外部?

我将是任何想法,可能会导致我一个很好的解决方案真的很感激。非常感谢!

+2

看到这个问题的答案:http://stackoverflow.com/q/683716/1284631 – user1284631

回答

2

这是你正在寻找的答案:

find . -name .svn -execdir svn update -r {2010-08-30} \; 

(来源:https://stackoverflow.com/a/3608453/1284631

+0

谢谢。我之前发现过这个讨论,但是我不明白这个命令的作用。我想我必须做更多的努力,并尝试一些测试项目。到目前为止,我从来没有使用命令行来管理SVN,而是使用TortoiseSVN(在Windows上)。我将不得不通过SVN命令文档来了解这个功能。现在我只能假设它必须运行指定的本地工作目录才能将其文件更新为指定的日期......是或否? :) –

+1

是的,没错。在主文件夹中运行它,在那里你通常会运行* svn update *。 – user1284631