我需要跟踪SVN中主页的历史变化。
每次办理登机手续时,我们都在主页上更改了跟踪代码。我正在尝试抓取跟踪代码以及签入日期。
主页有100多个版本,所以我不想手动执行此操作。
我想弄清楚的技巧是,我是否可以以与其签入数据相对应的方式导出文件的每个修订版。
所以导出的文件就像这样
/1-1-2011/home.htm
/1-4-2011/home.htm
或者
/1-1-2011_home.htm
/1-4-2011_home.htm
我使用tortoiseSVN客户端。
编辑: 我正在寻找的代码是在实际的home.htm中而不是在日志消息中。一旦我导出文件修订版,我将编写一个解析器来获取代码。
答案 0 :(得分:1)
我认为这不能在TSVN中完成。如果您使用svn command line,则可以获得执行运行svn log home.htm --xml
以获取XML格式的修订版。然后创建一个快速的C#应用程序来解析xml并获取日期和修订版本以及日期并创建一个批处理文件。
这是我在Linqpad:
中遇到的问题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);
这可能并不完美,但它应该是一个开始。