Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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 - Fatal编程技术网

如何在SVN中跟踪已移动文件/目录的完整日志?

如何在SVN中跟踪已移动文件/目录的完整日志?,svn,Svn,以下是svn log-v的结果,它在文件/目录的修订中停止移动。如何获取完整的跟踪日志 svn log -v r3171 | drake | 2010-08-16 15:04:49 +0800 (Mon, 16 Aug 2010) | 1 line Changed paths: D /lib/python2.5/dgGetFileSequence.py D /lib/python2.5/dgHumanSort.py D /lib/python2.5/dgconfig.py

以下是svn log-v的结果,它在文件/目录的修订中停止移动。如何获取完整的跟踪日志

svn log -v

r3171 | drake | 2010-08-16 15:04:49 +0800 (Mon, 16 Aug 2010) | 1 line
Changed paths:
   D /lib/python2.5/dgGetFileSequence.py
   D /lib/python2.5/dgHumanSort.py
   D /lib/python2.5/dgconfig.py
   D /lib/python2.5/dgdata.py
   D /lib/python2.5/dgtools.py
   A /python/dgtools/dgGetFileSequence.py (from /lib/python2.5/dgGetFileSequence.py:3170)
   A /python/dgtools/dgHumanSort.py (from /lib/python2.5/dgHumanSort.py:3170)
   A /python/dgtools/dgconfig.py (from /lib/python2.5/dgconfig.py:3170)
   A /python/dgtools/dgdata.py (from /lib/python2.5/dgdata.py:3170)
   A /python/dgtools/dgtools.py (from /lib/python2.5/dgtools.py:3170)

svn log
将为您提供完整的日志,即使是在重命名/移动/复制过程中。仅当您指定
--复制时停止
时,它将在重命名/移动/复制时停止


如果它没有为您跨越这些,那么您没有使用适当的svn命令(
svn mv
svn cp
)重命名/移动/复制您的文件,而是直接这样做,而不告诉svn。在这种情况下,这些文件不相关,您已经“丢失”了历史记录。您必须手动显示原始文件的日志。

很抱歉,我无法给出完整的答案,但我在堆栈中找到了两篇文章,我相信它们会对您有所帮助:1-和2-我知道svn日志应该跨移动工作,并且我确实确保了这样做。但不幸的是,svn日志只是在移动点停止,甚至在拷贝上没有停止。问题中的日志是我当时得到的第一个日志,正如我所说:“如果它没有为您交叉这些日志,那么您没有使用适当的svn命令重命名/移动/复制您的文件”No Stefan,这不是它可能不会“为您交叉”的唯一原因。如果您正在查看子目录的日志,并且文件是从该目录之外的位置复制的,则日志可能会短暂停止。就是这样,您可能需要提高一个级别,并使用
svndumpfilter
清除不需要的目录。是的,确实如此。如果复制/重命名操作正确,则即使在移动/重命名的子目录中显示日志,日志也会随之显示。如果复制/重命名发生在MyRepo的子目录之间,比如ProjectA和ProjectB(都在同一个MyRepo中)。如果你在ProjectB中做了一个日志,它不会反映从ProjectA的移动,除非你升级(做一个整个MyRepo目录的日志)。因此,尽管使用了适当的svn命令,日志仍然不会“交叉”。