svn在本地副本中修改的文件列表
我使用Tortoise客户端签出/提交我对SVN的更改。但我发现这有点困难,因为我无法找到在本地副本中更改的所有文件的列表。有什么捷径或是我忽略了的东西吗svn在本地副本中修改的文件列表,svn,tortoisesvn,Svn,Tortoisesvn,我使用Tortoise客户端签出/提交我对SVN的更改。但我发现这有点困难,因为我无法找到在本地副本中更改的所有文件的列表。有什么捷径或是我忽略了的东西吗 我是SVN的新手。仅供参考。我不熟悉乌龟,但我会键入subversion to linux svn status 一些谷歌搜索告诉我,Ortoise也支持命令行突击队,请在包含svn存储库的文件夹中尝试svn状态。Ortoise中的“检查修改”命令将显示工作副本中所有更改文件的列表。“提交”还将显示所有已更改的文件(然后您可以提交)。“恢复
我是SVN的新手。仅供参考。我不熟悉乌龟,但我会键入subversion to linux
svn status
一些谷歌搜索告诉我,Ortoise也支持命令行突击队,请在包含svn存储库的文件夹中尝试svn状态。Ortoise中的“检查修改”命令将显示工作副本中所有更改文件的列表。“提交”还将显示所有已更改的文件(然后您可以提交)。“恢复”还将显示更改的文件(您可以恢复)。我无法使
svn状态-q
正常工作。假设您在linux机器上,要仅查看已修改的文件,请运行:svn status | grep'M'
在windows上,我不确定您会做什么,可能是使用“FindStr”的某些功能在windows中应该可以做到:
下面的svn stat | find“M”命令将在windows中单独显示修改后的文件
svn status | findstr "^M"
svn状态| grep ^M将列出修改的文件。
M-表示已修改:)右键单击文件夹->单击乌龟SVN->检查修改如果您真的只想列出已修改的文件您可以通过在“M”前面加上表示文件已修改的“M”来减少SVN st的输出。我会这样做:
svn st | grep ^M
如果您只需要文件名,还需要添加的任何文件(A)
注意:前7列各有一个字符宽,后跟一个空格,然后是文件名。
svn status | grep'M'
在MacOSX上可以正常工作
我刚刚对此进行了测试。如前所述,您必须在GUI中使用
SVN检查修改
,并在CLI中使用tortoiseproc.exe/command:repostatus/path:“
查看与
根目录相关的更改
遗憾的是,这个命令不会显示所有本地更改,它只显示与请求的根目录相关的更改。单独进行的更改(如根子目录中的独立签出或孤立外部目录)将显示为未版本或嵌套,您可能无法提交/查找它们
要避免这种情况,您必须调用tortoiseproc.exe/command:repostatus/pathfile:“
(请参阅命令行:)上的详细文档),或者使用一些3dparty应用程序/实用程序/脚本来包装调用
我已经为Windows编写了自己的脚本集,以自动执行来自总指挥官的呼叫(搜索陆龟vn
)
-打开一组WC目录的TortoiseSVN状态对话框(始终打开以显示未版本的更改)。
Command: call_nowindow.vbs
Arguments: tortoisesvn\TortoiseProcByNestedWC.bat /command:repostatus "%P" %S
Command: call_nowindow.vbs
Arguments: tortoisesvn\TortoiseProcByNestedWC.bat /command:commit "%P" %S
-打开一组WC目录的TortoiseSVN提交对话框(仅在没有空版本更改时打开)。
Command: call_nowindow.vbs
Arguments: tortoisesvn\TortoiseProcByNestedWC.bat /command:repostatus "%P" %S
Command: call_nowindow.vbs
Arguments: tortoisesvn\TortoiseProcByNestedWC.bat /command:commit "%P" %S
有关最新的详细信息,请参阅
自述文件(使用前必须执行configure.bat
,并在自己身上复制其余脚本,如call_nowindow.vbs
)。使用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列中显示的文件中的其他差异
资料来源:
- svn状态:
- 要匹配svn状态结果的正则表达式:
啊!我错过了“检查修改”的尝试,直到Tortoise有了“检查修改”功能:)非常感谢。Windows命令行客户端有相同的命令,所以如果您使用cmd,您可以使用它。只显示目录中修改的文件:svn status-q@BrokenLinksvn安装包含您想要的所有二进制文件。不要总是选择UI。这将是痛苦和时间consuming@sarat“这将是痛苦和耗时的,”阿门!对于某些事情,我使用图形客户端(Tortoise SVN),但对于报告之类的事情,CLI要好得多,因为它更容易捕获报告并发送给他人审阅。SVN st | grep^M
更短:)SVN st | grep^M
更短,但我不会回答任何关于Stackoverflow的问题,除非这个问题是关于code golf的@DavidRivers有最好的答案。从命令行来看,这是我的解决方案。但是OP要求用乌龟来解决问题。这只显示了文件的更改,而没有显示文件中的更改。顺便说一句,这是一个重复的答案,nils在2014年发布了相同的答案。或者svn status | grep^M
这已经发布了,只是从已经接受的答案中复制过来。也许mod可以清理这个线程,这里大约有10篇帖子包含相同的答案。在windows中,我使用powershell ad做了这件事svn status | Where Object{$\uu.StartsWith(“M”)}