有没有什么办法可以从已有的目录或文件中删除旧版本....然后(知道它已经“移动”了以后的时间)找出它被移动的地方?svn移动后找到旧文件的新位置
例子。
https:\\myserver.com\Repository1\OldFolderStructure\Folder01\FolderA\MyFile01.txt
(该结构/文件存在于修订333)
........
svn mkdir "https:\\myserver.com\Repository1\NewFolderStructure\"
svn move "https:\\myserver.com\Repository1\OldFolderStructure\Folder01" "https:\\myserver.com\Repository1\NewFolderStructure"
svn ls "https:\\myserver.com\Repository1\NewFolderStructure\Folder01"
.......... (现在假装有1000多个其他检查,但没有更多的svn动作),所以我跳转到修订版1444.) ..........
所以,现在,如果我检查修订333,我有这个文件“MyFile01.txt”(或文件夹“Folde RA“)。 我试图找出它在HEAD修订版本中的位置。
你可能会想,“他为什么需要这个?” 我希望我没有。但是,我需要30分钟才能提供修订历史记录。 (< <坏笑话)。
.........编辑..............
所以一些额外的东西。
其中:svn info没给我足够的信息来找到新家。主要原因是目录嵌套。 我svn移动一些文件夹,但该文件夹有多个嵌套在多个级别的子文件夹。
但是,通过svn diff,虽然我获得了大量信息(在版本1444和333之间)......信息就在那里。我的意思是,svn diff任务需要33秒,但是一旦它返回,我就有了xml中的信息,我正在解析它并将其放入一些简单的DTO对象中。
两个(文件名相同的问题):
如果我的项目的原始位置是:
https://mySvnServer.com/Repo1/SoccerClubWebSite/scripts/validationRoutines.js
,然后我做一个svn差异(详细),我有以下两个项目在HEAD修订版本中:
<path props="none" kind="file" item="add">https://mySvnServer.com/Repo1/WebSites/SoccerClubWebSite/scripts/validationRoutines.js</path>
<path props="none" kind="file" item="add">https://mySvnServer.com/Repo1/WebSites/CriticalBusinessAppWebSite/scripts/validationRoutines.js</path>
我遇到了一些我的文件名不是唯一的地方。
所以我不得不写一个Uri段匹配器,试图找到匹配.....通过向后工作的Uri。
例子。 在上述2项中....我首先尝试URI的最后一段。
validationRoutines.js
我有2个匹配的字符串。因此我不知道我关心的确切人物。 我抓住父母文件夹并使用它。
scripts/validationRoutines.js
还有两场比赛。
现在我添加了第三URI段(从右至左)
SoccerClubWebSite/scripts/validationRoutines.js
,现在我找到了一个独特的比赛。
那么什么我现在做的基本模板是:
(1) SVN DIFF 333:HEAD
(仅供参考,这给信息反馈ALOT)。 (2) 解析XML并将其推送到简单的DTO对象。
(3) 在xml中查找“添加”或“修改”的项目,并使用基于上面列出的段逻辑的匹配系统。 (3b)因为同一个文件可能被多次修改(并且因此不止一次在xml中显示(但是具有相同的头部svn-path)...我必须做一个GROUP BY(svn -path)。LINQ组通过行之有效这里。
我还需要对更多的一些例子测试我的逻辑。但是YOUCH,这不是小事。
感谢您的输入。有没有这个命令行版本?或者那只是龟龟唯一的东西? – granadaCoder 2013-03-01 18:35:34
对于'svn mv' TSVN将不会在日志窗口中显示任何文件 - 您在这里(在Tortoise中)有**破解历史记录**的文件 – 2013-03-04 04:48:28