我正在管理一个由许多人开发的软件包。但是,可能不再需要包装的某些部分,并且可能会将其移除。如果长时间没有发生变化,那么这是一个很好的指标。 [你必须相信我这一点。我所处的合作有很奇怪的工作习惯......]
如何找出SVN回购中哪些文件不在某个时间段内发生变化?
我发现了这个问题,它描述了我的问题的反面: List of files changed since a certain date using SVN
但是,我不清楚如何使用解决问题的答案。有什么建议吗?
答案 0 :(得分:0)
你有一些选择
svn info file
,从输出中提取修订版。如果文件修订版<< repostory revision,那么这个文件太旧了svn info --xml
并解析文件/文件夹修订的xml结果svn checkout
选项执行use-commit-times
并在工作副本中搜索旧文件答案 1 :(得分:0)
如果你有grep
(你甚至必须在Windows上使用grep),你可以
svn ls -R | grep -v -f FILE
(TBT !!!我现在还没有grep在手中)
svn ls -R
输出完整的树答案 2 :(得分:0)
首先,获取最近更改过的文件/文件夹的列表唯一列表。转到工作副本的根目录并执行
svn log <url> -qv -r {startdate}:{enddate} | grep "^ " | awk '{print $2}' | sort -u | cut -c<N>- > changed.txt
请注意,此命令假定您的文件名中没有空格。如果有空格,则需要将awk
命令替换为更复杂的命令。应选择<N>
命令中的整数cut
,使changed.txt
中的所有路径都相对于当前目录。
然后,获取所有当前存在的文件的类似列表:
find . -type f -not -path "*/.svn*" | sort -u | cut -c3- > current.txt
最后,获取最近未更改的当前现有文件列表(即current.txt
但不在changed.txt
中的文件):
comm -23 current.txt changed.txt