Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
svn在本地副本中修改的文件列表_Svn_Tortoisesvn - Fatal编程技术网

svn在本地副本中修改的文件列表

svn在本地副本中修改的文件列表,svn,tortoisesvn,Svn,Tortoisesvn,我使用Tortoise客户端签出/提交我对SVN的更改。但我发现这有点困难,因为我无法找到在本地副本中更改的所有文件的列表。有什么捷径或是我忽略了的东西吗 我是SVN的新手。仅供参考。我不熟悉乌龟,但我会键入subversion to linux svn status 一些谷歌搜索告诉我,Ortoise也支持命令行突击队,请在包含svn存储库的文件夹中尝试svn状态。Ortoise中的“检查修改”命令将显示工作副本中所有更改文件的列表。“提交”还将显示所有已更改的文件(然后您可以提交)。“恢复

我使用Tortoise客户端签出/提交我对SVN的更改。但我发现这有点困难,因为我无法找到在本地副本中更改的所有文件的列表。有什么捷径或是我忽略了的东西吗


我是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”)}