SVN导出单个文件的多版本以进行比较
我需要跟踪SVN中主页的历史变化 每次办理登机手续时,我们都会在主页上更改一个跟踪代码。我正试图获取跟踪代码以及它的登记日期 主页有100多个版本,所以我不想手动完成 我想弄明白的诀窍是,我是否能够以与文件签入数据相对应的方式导出文件的每个修订版 所以要导出文件,就像这样 /1-1-2011/home.htm /1-4-2011/home.htm 或 /1-1-2011_home.htm /1-4-2011_home.htm 我使用龟甲VN客户端 编辑:SVN导出单个文件的多版本以进行比较,svn,tortoisesvn,Svn,Tortoisesvn,我需要跟踪SVN中主页的历史变化 每次办理登机手续时,我们都会在主页上更改一个跟踪代码。我正试图获取跟踪代码以及它的登记日期 主页有100多个版本,所以我不想手动完成 我想弄明白的诀窍是,我是否能够以与文件签入数据相对应的方式导出文件的每个修订版 所以要导出文件,就像这样 /1-1-2011/home.htm /1-4-2011/home.htm 或 /1-1-2011_home.htm /1-4-2011_home.htm 我使用龟甲VN客户端 编辑: 我要查找的代码在实际的home.htm中
我要查找的代码在实际的home.htm中,而不是在日志消息中。一旦导出文件修订版,我将编写一个解析器来获取代码。我认为这在TSVN中是做不到的。如果使用,则可以执行run
svn log home.htm--xml
以xml格式获取修订。然后创建一个快速C#应用程序来解析xml,获取日期、修订和日期,并创建一个批处理文件
这是我遇到的一件事:
这可能并不完美,但应该是一个开始。我应该更清楚。我要查找的代码在实际的home.htm中,而不是在日志消息中。谢谢。我刚刚更新了样品,因为它不完整。这将创建一个名为C:\Temp\SOExport.bat的批处理文件。当你运行它时,它“应该”将所有文件导出到文件夹中。好的,我知道它现在在做什么了。谢谢,我试试看。
var doc = XDocument.Load(@"C:\Temp\SOLog.xml");
var bat =
String.Join(Environment.NewLine,
doc
.Root
.Elements("logentry")
.Select(xe =>
new
{
Revision = xe.Attribute("revision").Value,
Date = DateTime.Parse(xe.Element("date").Value).ToString("dd-MM-yyyy"), })
.Select(a => String.Format("svn export -r {0} Home.htm C:\\Temp\\{1}", a.Revision, a.Date)));
bat.Dump(); //View Contents
using(System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\Temp\SOExport.bat", true))
sw.WriteLine(bat);