自动化SVN与PowerShell的合并

自动化SVN与PowerShell的合并,svn,version-control,merge,Svn,Version Control,Merge,我有一个PowerShell脚本repo,每个用户都有一个分支。我期待着写一个脚本,将(平衡线的自动化和安全性)自动更新的东西。目前,im是唯一一个使用它的用户,但最终目标是每个用户都有一个分支,该分支将在审查后合并到主干(假设im是唯一一个可以合并到主干的用户) 因此,我要做的第一件事是为我自己,它将接管我的本地分支并合并它 我的工作副本位于d:\ps\wc($wc variable),主干的本地副本位于d:\ps\scripts($trunk),分支url存储在$branchURL中 我想我

我有一个PowerShell脚本repo,每个用户都有一个分支。我期待着写一个脚本,将(平衡线的自动化和安全性)自动更新的东西。目前,im是唯一一个使用它的用户,但最终目标是每个用户都有一个分支,该分支将在审查后合并到主干(假设im是唯一一个可以合并到主干的用户)

因此,我要做的第一件事是为我自己,它将接管我的本地分支并合并它

我的工作副本位于d:\ps\wc($wc variable),主干的本地副本位于d:\ps\scripts($trunk),分支url存储在$branchURL中

我想我应该做的是下面的SVN命令

svn commit $wc -m "AutoCommit"
svn update $trunk
svn merge $branchurl $trunk
svn commit $trunk -m "AutoCommit"
还有一点,但我想确保我有正确的想法(合理的安全性)当涉及到做一个按钮提交


我要说的是,我是一个擅长powershell的系统管理员,SVN对我来说是全新的,但是一些人已经告诉了我想要运行它的足够多的危险

您的命令看起来基本上很好,只是您应该确保每一步都是成功的。如果任何步骤失败,脚本应退出,而不执行下一步

例如,如果您正在使用的目录正被某人使用,您可能会失败,因为文件可能被锁定。或者,即使您可以确保在脚本运行时没有人使用这些目录中的文件,
svn merge
步骤也可能由于冲突而失败。您可能能够提出文件锁定问题的自动化解决方案,但无法自动处理冲突

最后,如果在
$wc
中添加了新脚本,该怎么办?如果要自动添加文件,可以执行以下操作:

svn add $wc --force

如果没有
--force
svn
将失败,因为
$wc
中的其他文件已经处于版本控制之下。使用
--force
标志,它将有效地将所有未知文件添加到版本控制中。这可能看起来很奇怪,因为通常
--force
标志表示危险的事情,但这是一个例外<代码>svn添加--force类似于
git添加。

也许你会发现以下内容很有帮助
你可以在它上面配置多个分支,并为每个分支提供进一步的分支。

我也应该提到这个开关,这样我就不必有分支的本地副本了,但是我不确定我理解它的含义是否足够想做它。你必须考虑当你合并时该怎么做。冲突。我只是想我应该提交我的分支,然后将主干合并到我的分支(并提示用户发生冲突),然后再合并回主干。这样,如果在数据冲突的情况下做出了错误的选择,我的分支中就会有一份代码副本。感谢您的输入ThisSuitlsBlackNot!也许你会发现下面的内容很有用,你可以在上面配置多个分支以及每个分支要提交的分支。锁的部分是分支或主干上的问题?谢谢@jrich523锁可能同时发生在
$wc
$trunk
上。请注意,在Windows中运行脚本时,操作系统会锁定该脚本。因此,很难将该脚本放入svn:)中,因为它将作为一个模块使用,这可能是正常的,但一定是一个好的测试用例@JRIC523如果由于大量使用而发生了大量的锁定,您可能会在更合适的时间内安排自动提交,比如在深夜。“JRIC5523我想了一个在您的脚本中可能更好的步骤,<代码> Svn Addio/Cuth>,请参阅我的更新后的文章。