我使用Tortoise客户端来检查/提交我对SVN的更改。但我发现这有点困难,因为我无法找到本地副本中更改的所有文件的列表。是否有任何捷径或我忽视的事情?
我是SVN的新手。 FYI。
答案 0 :(得分:114)
我对乌龟不熟悉,但是对于linux的颠覆,我会输入
svn status
一些谷歌搜索告诉我,龟也支持命令行突击队,在包含svn存储库的文件夹中尝试svn状态。
答案 1 :(得分:45)
我无法让svn status -q
工作。假设您在Linux机器上,要仅查看已修改的文件,请运行:svn status | grep 'M '
在Windows上我不知道你会做什么,也许是'FindStr'
答案 2 :(得分:30)
tortoise中的“Check for Modifications”命令将显示工作副本中所有已更改文件的列表。 “Commit”也会显示所有已更改的文件(然后您可以提交)。 “还原”还会显示已更改的文件(然后您可以还原)。
答案 3 :(得分:10)
下面的命令将在Windows中单独显示修改后的文件。
svn status | findstr "^M"
答案 4 :(得分:7)
如果您确实要列出仅修改过的文件,可以通过前导“M”来减少 svn st 的输出,表示文件已被修改。我会这样做:
svn st | grep ^M
答案 5 :(得分:3)
svn status | grep 'M '
适用于 MacOSX 。
我刚试过这个。
答案 6 :(得分:2)
如果您只想要文件名,并且还想要添加任何文件(A)。
| ColA | ColB | ColC | RankingCriteria | Ranking |
|------|------|------|-----------------|---------|
| - | - | - | 10 | 1 |
|------|------|------|-----------------|---------|
| A | - | - | 10 | 1 |
| B | - | - | 8 | 2 |
|------|------|------|-----------------|---------|
| A | a | - | 9 | 1 |
| A | b | - | 7 | 2 |
| A | c | - | 5 | 3 |
| A | d | - | 2 | 4 |
|------|------|------|-----------------|---------|
| B | a | - | 8 | 1 |
| B | c | - | 7 | 2 |
| B | b | - | 2 | 3 |
|------|------|------|-----------------|---------|
| A | a | x | 7 | 1 |
| A | a | y | 5 | 2 |
| A | a | z | 4 | 3 |
|------|------|------|-----------------|---------|
| A | b | y | 6 | 1 |
|------|------|------|-----------------|---------|
| A | c | w | 10 | 1 |
| A | c | y | 10 | 1 |
| A | c | z | 8 | 2 |
| A | c | x | 6 | 3 |
|------|------|------|-----------------|---------|
| A | d | y | 4 | 1 |
|------|------|------|-----------------|---------|
| B | a | w | 10 | 1 |
| B | a | x | 8 | 2 |
|------|------|------|-----------------|---------|
| B | b | y | 6 | 1 |
| B | b | z | 5 | 2 |
| B | b | w | 4 | 3 |
|------|------|------|-----------------|---------|
| B | c | x | 6 | 1 |
|------|------|------|-----------------|---------|
注意:前7列是一个字符宽,后面是文件名。
答案 7 :(得分:1)
这应该在Windows中执行: svn stat |找到“M”
答案 8 :(得分:0)
svn status | grep ^ M将列出被修改的文件。 M - 代表修改:)
答案 9 :(得分:0)
如上所述,您必须在GUI中使用SVN Check for modification
,在CLI中使用tortoiseproc.exe /command:repostatus /path:"<path-to-version-control-file-or-directory>"
来查看与<path-to-version-control-file-or-directory>
的根相关的更改。
可悲的是,但此命令不会显示所有本地更改,它只会显示与请求的目录根相关的更改。单独进行的更改(如root子目录中的独立签出或孤立外部目录)将显示为 Unversioned 或 Nested ,您可能会错过提交/查找它们。
要避免这种情况,您必须调用tortoiseproc.exe /command:repostatus /pathfile:"<path-to-file-with-list-of-items-to-lookup-from>"
(请参阅命令行上的详细文档:https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-automation.html),或使用一些3dparty应用程序/实用程序/脚本来包装调用。
我已经编写了自己的一组脚本 for Windows 来自动调用Total Commander
:https://sf.net/p/contools/contools/HEAD/tree/trunk/Scripts/Tools/ToolAdaptors/totalcmd/README_EN.txt(搜索TortoiseSVN
)
- 打开一组WC目录的TortoiseSVN状态对话框(始终打开以显示未修改的更改)。
Command: call_nowindow.vbs
Arguments: tortoisesvn\TortoiseProcByNestedWC.bat /command:repostatus "%P" %S
- 为一组WC目录打开TortoiseSVN提交对话框(仅在未进行空版本更改时打开)。
Command: call_nowindow.vbs
Arguments: tortoisesvn\TortoiseProcByNestedWC.bat /command:commit "%P" %S
有关最新详细信息,请参阅README_EN.txt
(您必须在使用前执行configure.bat
并自行复制其余脚本,例如call_nowindow.vbs
)。
答案 10 :(得分:0)
使用Powershell,您可以执行以下操作:
# Checks for updates and changes in working copy.
# Regex: Excludes unmodified (first 7 columns blank). To exclude more add criteria to negative look ahead.
# -u: svn gets updates
$regex = '^(?!\s{7}).{7}\s+(.+)';
svn status -u | %{ if($_ -match $regex){ $_ } };
这将包括属性更改。这些内容显示在第2列中。它还将捕获第3-7列中显示的文件中的其他差异。
来源:
答案 11 :(得分:-1)
右键单击文件夹 - &gt;点击Tortoise SVN - &gt;检查修改