svn从存储库A签出并提交到存储库B.

时间:2015-03-13 21:45:08

标签: svn copy commit

我从svn存储库A中检出trunk并在构建服务器上进行构建。构建成功后,构建(bin目录)的结果我想提交到存储库B.我在Windows上工作。我怎样才能做到这一点?下面是我尝试过的脚本,但是我收到了错误:

svn: E205000: Try 'svn help' for more info
svn: E205000: 'https://repositoryB' is not a local path
svn: E205000: Try 'svn help' for more info
svn: E205000: Commit targets must be local paths
svn: E205000: ''https://repositoryB'' is not a local path

以下是我的脚本:(在带有存储库A结帐的构建服务器上)和 $ destination =存储库B路径

Copy-Item bin\Release\*.* -Destination $directory -Force
svn add $destination--force --depth infinity --username ADMIN
svn commit $destination--message $svnComment --depth infinity --username ADMIN --trust-server-cert --non-interactive

2 个答案:

答案 0 :(得分:0)

您无法添加或提交存储库路径。你需要给它一个工作副本路径。因此,您需要设置一个工作副本来输入内容,或者您​​需要在脚本中svn checkout一个新的工作副本。

完成后,确定您是否确实每次都要svn add 文件位置,或者是否要用新版本替换旧文件。如果是后者,则需要从脚本中删除svn add命令。否则,您每次都需要指定一条新路径,或者每次复制新内容之前都需要svn rmsvn commit旧路径。我个人认为只提交修改过的文件是最有意义的。

答案 1 :(得分:0)

我可以在不查看存储库的情况下实现我所寻找的目标。我使用了" svn import",它是两者的结合。添加' +' svn commit'。所以,代码是:svn import bin\Release\*.* $destination -m "commit msg"

使用svn import ...我们可以在不进行svn签出的情况下提交到存储库。