2009-12-30 51 views
17

这可能与TortoiseSNV ?:如何有TortoiseSVN的总冻结的svn:externals的标签为

始终冻结svn:externals标签为

的情况是我们的行李箱总是会使用“HEAD”修订版的外部,然而,当我们创建“标签”时,我们希望他们为外部人员设置一个修订版,以便在特定时间点正确“冻结”它们。

更新

感谢大家的意见/信息。

因为我找不到任何能完全满足我们需求的东西(试过smartsvnsvncopy.pl)我制作了一个控制台应用程序,迄今已通过我们所有的测试用例。

高级概述:应用程序需要一个存储库URL,然后查找所有外部数据并为它们添加上次提交修订 - 我执行svn info并获取“提交修订”。

该应用程序与文件夹和单个文件外部工作。

这里是源代码和完整的安装文件: http://svnxf.codeplex.com/

+1

什么svncopy.pl没有满足您的需求? – kostmo 2011-07-12 18:05:13

+0

请发表解答作为答案,而不是问题。 – 2012-03-16 15:10:09

回答

6

我发现这个职位今天我找了一个解决相同问题。最终我发现TortoiseSVN的最新版本DOES支持这个所需的功能:TortoiseSVN 1.7 Release Notes

希望这将有助于其他研究同样的问题时,谁找到这个职位。

0

您可以指定的外部修订:

third-party/skins -r148  http://svn.example.com/skinproj 

svnbook

+0

谢谢 - 我正在寻找一个自动化过程。 – dnndeveloper 2009-12-30 21:44:49

+0

我不认为有一种方法可以自动完成,除非您自己编写脚本/编程东西,并始终使用它来标记 – 2009-12-30 21:52:41

6

建议的最佳做法是始终使用外部定义中的显式修订(不是HEAD)。从documentation

你应该认真考虑在所有你的外部 定义的使用明确的修订版本。这样做意味着您可以决定何时提取外部信息的不同快照 ,以及确切获取哪个快照。 …对于软件 项目,这可能是复杂代码库的旧版快照的成功构建和失败构建之间的区别。

直接回答你的问题:没有,它’不是可以使用TortoiseSVN标记时自动改变外部定义。创建标签时必须手动完成。

+0

我完全同意这个标记,但是干线将始终使用最新的标记。 – dnndeveloper 2009-12-30 21:45:36

+1

即使干线不应该使用最新的。如果一个依赖关系有一个突破性的变化应用到它,那么你有几个修订,你的中继构建被打破。相反,您应该使用固定修订版,然后您(a)更新外部定义(b)更新您的代码以支持依赖关系中的更改,一举完成。 – 2012-03-16 15:02:53

2

您应该尝试SmartSVN,它可以在创建标签或分支时将HEAD-externals转换为固定的外部。您可以在添加标签/添加分支对话框的底部找到此选项(外部修订:(o)保持原样()修复所有()修复(下文除外)。

+0

试过这个,它似乎只适用于文件夹外部,而不是单个文件外部支持1.6 + ...第一个客户端得到这个工作权利将有一个很好的优势,其余的! – dnndeveloper 2010-01-01 07:40:38

+0

根据http://www.syntevo.com/smartsvn/changelog.txt SmartSVN 6.5.2修复了文件外部。 – Mot 2010-02-02 09:39:56

3

您可以试试svncopy.pl(在google上找到它) 这是一个perl脚本,可以满足您的需求。

+0

对于懒惰:https://svn.apache.org/repos/asf/subversion/trunk/contrib/client-side/svncopy/ – kostmo 2011-07-12 17:56:17

1

我会第二个迈克尔。

此外,从SVN文件的建议:在SVN

  • 使用非固定版本:外部组件使得难以更新工作拷贝到指定的版本(例如错误调查期间)
  • 与SVN目录的日志:外部对象将是不完整的,其可以提供关于修订之间
  • 分支与合并可能会变得更加复杂,变化集合虚假信息

通常,SVN似乎主要针对包含在公共目录中的代码而设计。 svn:externals(甚至通过名称)被添加用于引用外部存储库。所以我会期待上面提到的其他问题。

我的经验需要SVN的使用:对于非固定版本的外部经常来自于错误的结构信息库。

可能这不是你的情况,我只是建议要考虑到这些点......

0

我知道这是不是TortoiseSVN的,但如果你有颠覆性的Eclipse中使用,你可以右键点击该项目并选择team->标签。默认情况下,颠覆者会冻结外部并很好地格式化属性。

+0

谢谢 - 我也在寻找我们可以放入自动构建的东西。 – dnndeveloper 2010-12-25 12:29:58

1

更新

感谢大家的反馈/信息。

因为我找不到任何可以完全满足我们的需求(试过的SmartSVN和svncopy.pl)我做了,到目前为止已经通过了所有我们的测试情况下,一个控制台应用程序。

高度概括:应用程序需要那么库网址查找所有的外部,并增加了最后一次提交的修订为他们 - 我做了一个“SVN信息”,并获得“提交修订”。

的应用支持文件夹和单个文件的外部。

这里是源代码和完整的安装文件:http://svnxf.codeplex.com/