TortoiseSVN 提交到多个目标

Posted

技术标签:

【中文标题】TortoiseSVN 提交到多个目标【英文标题】:TortoiseSVN Committing To Multiple Targets 【发布时间】:2016-01-19 13:11:03 【问题描述】:

我使用 TortoiseSVN 作为我的版本控制工具。我最近创建了一个命令行来将更改的文件提交到 SVN 存储库。

我的仓库位于:file:///F:/SVNRepository/TortoiseSVN

我的源代码文件位于:C:\Users\userid\Documents\ActiveDocuments\PSScripts\

如果我转到 Windows 资源管理器并右键单击该文件,我会看到以下内容,这是正确的:

但是,如果我运行 TortoiseSVN 命令,我会看到以下内容:

注意 Commit To: 的表述方式(选择了多个目标),您会看到所有文件的副本。

我现在搜索了几个小时,似乎无法找到正确显示 TortoiseSVN 提交命令的方法。

这是我对命令的编码方式:

'C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe' '/command:commit' '/path:"C:\Users\zrmfld\Documents\ActiveDocuments\PSScripts\*.*"'

这是svn info 命令的结果:

C:\Users\zrmfld\Documents\ActiveDocuments\PSScripts\TortoiseSVN>svn info
Path: .
Working Copy Root Path: C:\Users\zrmfld\Documents\ActiveDocuments\PSScripts
URL: file:///F:/SVNRepository/TortoiseSVN
Relative URL: ^/TortoiseSVN
Repository Root: file:///F:/SVNRepository
Repository UUID: fd12eeda-107f-5d40-bebd-932aaf916f88
Revision: 11
Node Kind: directory
Schedule: normal
Last Changed Author: zrmfld
Last Changed Rev: 11
Last Changed Date: 2015-10-20 13:31:07 -0400 (Tue, 20 Oct 2015)

【问题讨论】:

请在 `C:\Users\zrmfld\Documents\ActiveDocuments\PSScripts` 中显示 svn info 的输出 @Lazybadger C:\Users\zrmfld\Documents\ActiveDocuments\PSScripts\TortoiseSVN>svn 信息路径:.工作副本根路径:C:\Users\zrmfld\Documents\ActiveDocuments\PSScripts URL:file:///F:/SVNRepository/TortoiseSVN 相对 URL:^/TortoiseSVN Repository Root:file:///F:/SVNRepository Repository UUID :fd12eeda-107f-5d40-bebd-932aaf916f88 修订:11 节点种类:目录 时间表:正常 最后更改作者:zrmfld 最后更改修订:11 最后更改日期:2015-10-20 13:31:07 -0400(星期二,20 2015 年 10 月) @LazyBadger 检查对我包含 svn 信息的问题的编辑 svn ls 获取相同的目录 根据我的经验,你可以只做一个提交。即使显示了多个文件,结果也是一样的。 【参考方案1】:
    我不知道你为什么在 TortoiseProc 命令的每个部分周围使用撇号,根据docs(对于 CMD-shell ?)不需要它(注意页面底部的第一个示例与 TortoiseProc 的提交) 对于:commit 命令“.../path 指定目标目录或要提交的文件列表...”,即“目录中的所有(更改版本的)文件”可能只是

/path:"C:\Users\zrmfld\Documents\ActiveDocuments\PSScripts\"

    C:\Program Files\TortoiseSVN\bin\ 通常添加到 PATH 中,可以从任何位置调用 TortoiseProc,因此:您可以在脚本中拥有 smth。更具可读性
cd C:\Users\zrmfld\Documents\ActiveDocuments\PSScripts
TortoiseProc.exe /command:commit /path:"." ...

最后但并非最不重要的一点

SVN 活动的简单和良好的自动化假设使用完全非交互式 CLI 工具,您可以将其作为 TortoiseSVN 安装的一部分:简单透明的语法,无对话|窗口,请阅读svn help commit

【讨论】:

好的,你解决了我的问题。看来,如果您将/路径设置为“C:\Users\zrmfld\Documents\ActiveDocuments\PSScripts\”,它可以工作,但如果像我那样做,那就是“C:\Users\zrmfld\Documents\ActiveDocuments \PSScripts*.*" 它将显示(选择了多个目标)。至于命令周围的单引号,它们之所以存在,是因为我试图从 PowerShell 控制台运行这些命令。再次感谢 --- 你拯救了这一天! @FrankDiJohn - 很酷。我仍然建议迁移到 pure CLI-tools

以上是关于TortoiseSVN 提交到多个目标的主要内容,如果未能解决你的问题,请参考以下文章

TortoiseSVN 客户端

将分支中的更改合并到主干中

TortoiseSVN 项目检出文件夹不完整问题

SVN服务器搭建--Subversio与TortoiseSVN的配置安装

使用TortoiseSVN进行提交,失败

SVN文件加锁