9

我尝试使用 svn ci dir/a dir/b -m "my comment" 但这不起作用。我还使用了 svn ci dir/a/* dir/b/* -m "my comment" 也不起作用。

我知道你可以指定多个文件,但是我如何告诉 subversion 签入这些文件夹中所有修改过的文件?我主要想这样做,以便我的所有更改都在一个修订版中生效。我可以一次签入一个目录,但这最终会为每个目录提供不同的修订版..

4

9 回答 9

10

您可能需要指定“但这不起作用”是什么意思,因为它在这里可以正常工作:

D:\Projects>svn commit -m 'test1' test\aaa "test\aaa bbb ccc"
Sending        test\aaa\aaa222\xxx.txt
Sending        test\aaa bbb ccc\aaa.txt
Transmitting file data ..
Committed revision 8.

D:\Projects>
于 2009-05-18T18:27:35.877 回答
4
svn add dir/a
svn add dir/b
svn commit

虽然,更有可能的是,你在想:

svn add dir/*
svn commit
于 2009-05-18T17:24:14.600 回答
1

我认为您只有一个选项:签入包含目录 - 将这两个目录都作为子目录的目录。

如果它们还没有像那样组织(即它们都是 repo 中的顶级目录),那么你可以做的事情不多 - svn 命令只能在单个目录上工作。

于 2009-05-18T17:26:11.710 回答
1

您可以使用 --changelist 选项,在顶级目录上创建一个包含您要提交的所有文件的更改列表,然后提交该更改列表。

来源和信息: svn book:changelist

于 2018-06-06T14:27:11.597 回答
0

如果您从更高级别的文件夹中签出 a 和 b 所在的位置,这很容易。因此,如果您的工作副本是“dir”并且 a 和 b 有更改,请提交“dir”以提交对两者的更改。我一直这样做。

编辑:
要提交多个文件夹,您需要将它们放在同一个工作副本中。

如果您担心要处理的东西太多,您可以尝试只使用您需要的文件夹进行稀疏检出,然后您可以根据需要提交基本目录子目录,而不会产生其他项目的开销。

稀疏目录信息

于 2009-05-18T17:26:38.167 回答
0

考虑使用 svn:externals 属性来检出存储库的一部分。您可以选择要获取的目录,然后在一个步骤中提交到多个目标。我们使用这种方法已经有一段时间了,并取得了巨大的成功。

于 2009-05-18T19:59:19.967 回答
0

考虑以下是查询

  1. 您有很多文件从存储库签出到多个目录中,其中许多文件已被修改,您不记得哪些文件被修改了,您将很难一次合并一个文件,然后执行以下操作

转到顶级目录并运行命令

svn ci -m "comments"

这将签入顶级目录下的所有修改文件以及它下面的许多子目录。

于 2011-06-15T04:09:19.280 回答
0

遇到了类似的问题。我有一个存储库,我需要有一些存储库子文件夹的两个单独的工作副本。存储库是这样的:

/web/lib
/web/htdocs
...

...我需要在单独的工作副本中(分别):

C:/.../web/lib
C:/.../htdocs/cbs

我通过拥有 in 的“主”工作副本/webC:/.../webC:/.../htdocs/cbs“指向”到C:/.../web/htdocs. 因此,每当我在其中一个工作副本中进行本地更改时,我总是提交C:/.../web,它自然包含来自两个工作副本的更改。

我希望这种方式对你有用。

于 2014-11-01T23:29:14.877 回答
0

自从提出这个问题以来已经有很长时间了,但我有任何迟到的更新。

假设您有一个像 dir/a, dir/b, dir/c, dir/d.... 这样的树,并且只想在子文件夹 a 和 b 中提交更改,则以下命令有效:

svn ci dir/a/* dir/b/* -m "我的评论"

如果您在七年前尝试时确实无法使用,我只能假设此功能是在后续版本中添加的。

于 2016-06-02T15:21:40.693 回答