Svn 如何判断文件夹删除的版本?
我刚加入一个组织,当前的存储库修订号是10000。 我知道在2000年修订版左右,存储库中有一个文件夹。确定最后一个修订版本何时包含文件夹的最佳方法是什么 我重新添加了文件夹,现在假设我的版本是10001 如果我这样做:Svn 如何判断文件夹删除的版本?,svn,Svn,我刚加入一个组织,当前的存储库修订号是10000。 我知道在2000年修订版左右,存储库中有一个文件夹。确定最后一个修订版本何时包含文件夹的最佳方法是什么 我重新添加了文件夹,现在假设我的版本是10001 如果我这样做: svn log -q -v folder1\folder2\missingFolder\ 我只知道“missingFolder”是在修订版10001中添加的。如果我从修订版10000运行该命令,它只是说“missingFolder”不存在。对我来说,它看起来几乎正确 但我会
svn log -q -v folder1\folder2\missingFolder\
我只知道“missingFolder”是在修订版10001中添加的。如果我从修订版10000运行该命令,它只是说“missingFolder”不存在。对我来说,它看起来几乎正确 但我会这样做:
svn log -q -v -r10000:2000
和grep
的输出
D folder1\folder2\missingFolder
或者,如果您确信folder1\folder2
永远存在,您可以缩小搜索范围并执行以下操作
svn log -q -v -r10000:2000 folder1\folder2
寻找
D missingFolder
我认为您最初的方法不太管用,因为当Subversion在修订日志中挖掘并找到一个添加的文件夹时,它(正确地)认为没有必要深入挖掘,因为该文件夹在以前的提交中不存在,因此搜索停止
请注意,我还使用
-r
命令行选项限制了要扫描的修订范围。即使两个缺少的文件夹具有相同的名称并且位于相同的存储库目录中,Subversion仍将它们视为两个完全独立的项。如果执行svn log missingFolder
,您将获得刚才添加的与先前删除的信息不同的信息
让我们一次拿一个:
如何查找文件或文件夹何时被删除
差不多就是这样,然后搜索文件夹的名称和表示它被删除时间的D
清单可能相当长,但运行起来并不需要那么长的时间。我将通过less
:
$ svn log -v -q | less
然后,我可以执行/D*missingFolder
并找到我看到删除的行。几行将是它被删除的修订号
$ svn log -v $REPO/folder/folder
...
...
[on and on}
r1234 | ....
D folder/folder/missingFolder
deleted missingFolder
------
...
...
我们可以看到此文件夹已在1234版中删除。这意味着它存在于1233版中。记住这一点很重要
您可以在父文件夹上执行svn日志
,这将使输出更短
如何正确添加回以前存在的文件夹或文件:
如果您希望此文件夹或文件的历史记录一直追溯到删除之前,则需要在Subversion存储库中复制该项目,然后再将其删除。请记住,此文件夹已在版本1234中删除。这意味着它存在于1233版:
$ svn cp -r1233 $REPO/folder/folder/missingFolder@1233 .
现在,此文件夹与您当前版本中先前在版本1233中删除的文件夹相同。现在,做一个日志将向我显示missingFolder
的整个历史记录。不幸的是,它会显示文件或文件夹何时被添加回存储库,但不会显示文件或文件夹何时被删除。对于这些信息,您必须获取父文件夹的svn日志。
。可能的重复项
$ svn cp -r1233 $REPO/folder/folder/missingFolder@1233 .