我的脚本是否必须更新svn服务器?

时间:2009-05-15 15:21:44

标签: svn

我正在尝试使用脚本自动化从现有项目创建新项目的过程。我最初的想法是应该有两个脚本:

1:从svn存储库中检出现有项目,然后重命名它(即从所有文件中的ExistingProjectName => NewProjectName中搜索并替换,然后“svn重命名”包含字符串ExistingProjectName的所有文件和目录)

2:在用户检查了编译等之后,在存储库中创建新项目(例如,使用“svn switch”命令)

我们的想法是,在用户有机会进行检查之前,不应更改存储库。

但是,我已经指出了潜在的风险。运行#1后,本地工作副本仍与现有项目关联。在这个阶段不小心提交的人会搞乱现有的项目。

有人会想到一些可以阻止用户在#1之后提交的svn技巧吗?在完成文档后,我想不出任何事情。

谢谢。

安迪

(如果无法停止提交,那么我们将需要使用两个版本中较小的一个,并编写脚本以便在用户有机会检查之前更新存储库。)

4 个答案:

答案 0 :(得分:1)

可能,您可以为更改的文件写一个特殊值,以指示状态。然后,使用svn commit钩子来检查是否有人试图提交到错误的存储库......

答案 1 :(得分:1)

可能你可能想要进行svn导出。

答案 2 :(得分:1)

要在svn中创建新分支,请使用svn copy命令。完成后,您在存储库中有2个项目,您可以随意修改其中任何一个项目。

所以,如果你要svn重命名项目 - 为什么不创建分支然后重命名文件(并更新内容)。完成工作!

另一种方法是检查现有项目,重命名和编辑它,然后将工作副本添加到svn。这将是'原子',并会阻止重命名显示在日志中。

添加一个全新的分支与复制一样好,除非你没有得到svn的“廉价副本”的好处,但是当你进行重要的编辑(并重命名!)这不是一个更好的方法首先是什么?

答案 3 :(得分:0)

停止提交的技巧是在第一步中使用svn export。 然后,当更改准备就绪时,请使用svn import