我有一个PowerShell脚本仓库,每个用户都有一个分支。我希望编写一个脚本(平衡一系列自动化和安全性)自动更新内容。目前我是唯一使用它的人,但最终目标是每个用户都有一个分支,一旦被审查,该分支将合并到主干(假设我是唯一可以合并到主干的人)
所以我想要做的第一个任务,对我来说,这将采取我的本地分支并合并它。
我的工作副本位于d:\ ps \ wc($ wc变量)和d:\ ps \ scripts($ trunk)中的trunk的本地副本,我将分支url存储在$ branchURL < / p>
我认为我应该做的是以下SVN命令。
svn commit $wc -m "AutoCommit"
svn update $trunk
svn merge $branchurl $trunk
svn commit $trunk -m "AutoCommit"
还有更多内容,但我想确保在做按钮提交时我有正确的想法(合理的安全性)。
我只是说我是一个擅长powershell的系统管理员,SVN对我来说都是新手,但是我已经被告知了一些人想要运行它的危险
答案 0 :(得分:1)
你的命令基本上看起来很好,除了你应该确保每一步都成功。如果任何步骤失败,脚本应退出而不执行下一步。
例如,如果某个人正在使用您正在使用的目录,则可能会失败,因为文件可能被锁定。或者,即使您可以确保在脚本运行时没有人将使用这些目录中的文件,svn merge
步骤可能会因冲突而失败。您可能能够提出自动解决文件锁定问题的解决方案,但您将无法自动处理冲突。
最后,如果$wc
中添加了新脚本怎么办?如果要自动添加文件,可以执行以下操作:
svn add $wc --force
如果没有--force
,svn
会失败,因为$wc
中的其他文件已经受版本控制。使用--force
标志,它将有效地将所有未知文件添加到版本控制。这可能看起来很奇怪,因为通常--force
标志是危险的,但这是一个例外。 svn add --force
与git add .
类似。
答案 1 :(得分:1)
也许您可以找到以下有用的automerger 您可以在其上配置多个分支,并为每个分支配置进一步提交的分支。