我尝试使用 svn ci dir/a dir/b -m "my comment" 但这不起作用。我还使用了 svn ci dir/a/* dir/b/* -m "my comment" 也不起作用。
我知道你可以指定多个文件,但是我如何告诉 subversion 签入这些文件夹中所有修改过的文件?我主要想这样做,以便我的所有更改都在一个修订版中生效。我可以一次签入一个目录,但这最终会为每个目录提供不同的修订版..
您可能需要指定“但这不起作用”是什么意思,因为它在这里可以正常工作:
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>
svn add dir/a
svn add dir/b
svn commit
虽然,更有可能的是,你在想:
svn add dir/*
svn commit
我认为您只有一个选项:签入包含目录 - 将这两个目录都作为子目录的目录。
如果它们还没有像那样组织(即它们都是 repo 中的顶级目录),那么你可以做的事情不多 - svn 命令只能在单个目录上工作。
您可以使用 --changelist 选项,在顶级目录上创建一个包含您要提交的所有文件的更改列表,然后提交该更改列表。
来源和信息: svn book:changelist
如果您从更高级别的文件夹中签出 a 和 b 所在的位置,这很容易。因此,如果您的工作副本是“dir”并且 a 和 b 有更改,请提交“dir”以提交对两者的更改。我一直这样做。
编辑:
要提交多个文件夹,您需要将它们放在同一个工作副本中。
如果您担心要处理的东西太多,您可以尝试只使用您需要的文件夹进行稀疏检出,然后您可以根据需要提交基本目录或子目录,而不会产生其他项目的开销。
考虑使用 svn:externals 属性来检出存储库的一部分。您可以选择要获取的目录,然后在一个步骤中提交到多个目标。我们使用这种方法已经有一段时间了,并取得了巨大的成功。
考虑以下是查询
转到顶级目录并运行命令
svn ci -m "comments"
这将签入顶级目录下的所有修改文件以及它下面的许多子目录。
遇到了类似的问题。我有一个存储库,我需要有一些存储库子文件夹的两个单独的工作副本。存储库是这样的:
/web/lib
/web/htdocs
...
...我需要在单独的工作副本中(分别):
C:/.../web/lib
C:/.../htdocs/cbs
我通过拥有 in 的“主”工作副本/web
并C:/.../web
在C:/.../htdocs/cbs
“指向”到C:/.../web/htdocs
. 因此,每当我在其中一个工作副本中进行本地更改时,我总是提交C:/.../web
,它自然包含来自两个工作副本的更改。
我希望这种方式对你有用。
自从提出这个问题以来已经有很长时间了,但我有任何迟到的更新。
假设您有一个像 dir/a, dir/b, dir/c, dir/d.... 这样的树,并且只想在子文件夹 a 和 b 中提交更改,则以下命令有效:
svn ci dir/a/* dir/b/* -m "我的评论"
如果您在七年前尝试时确实无法使用,我只能假设此功能是在后续版本中添加的。