在SVN文件

时间:2017-06-26 17:24:11

标签: linux svn tortoisesvn visualsvn-server

我正在使用以下命令将文件导出到一个文件夹中并将其移至生产状态而不执行更改:

  

svn export --username user --password passwd --non-interactive --force svn://svnserver.com/trunk/patch/115/sql/TestFile.sql

在移动之后,我想添加一个注释/标记文件已成功移动。为此,我尝试了下面的命令,但它们不起作用:

> svn commit -m " Test" TestFile.sql
svn: '/home//SVNTEST/1' is not a working copy

> svn commit -m "Test" svn://svnserver.com/trunk/patch/115/sql/TestFile.sql
svn: Must give local path (not URL) as the target of a commit

如果可以,是否可以这样做?

1 个答案:

答案 0 :(得分:1)

总而言之,您正在将文件从存储库复制到本地计算机,然后您希望以某种方式在存储库中指示此操作已发生。

在不了解您的设置的情况下,我认为创建标记可能是最直接的方法。使用此命令:

svn copy svn://svnserver.com/trunk/ svn://svnserver.com/tags/115 -m "Test"

使用标记名称的任何唯一键(此处我使用'115',因为它似乎是一个补丁标识符)。

让我们讨论为什么你尝试的命令不起作用。

由于您是exporting而不是checking out该文件,因此您没有working copy。导出基本上等同于从HTTP或FTP服务器下载文件;没有附加条件。

现在,子命令commit需要一个工作副本(为了知道存储库中的哪个位置进行本地更改),这解释了为什么在第一个命令中你尝试了错误表明你不在工作副本。第二个命令出错是因为您(我认为)正在尝试告诉SVN上传本地TestFile.sql的远程位置,这不是commit子命令的有效用例。

我的建议是创建一个标签,但完全在服务器上创建,这意味着您不需要工作副本。