命令行SVN帮助检查工作副本是服务器中存在的副本的过时副本

时间:2011-01-18 13:12:16

标签: windows svn tortoisesvn

您好 我想在我的应用程序中实现以下流程(如伪代码所示)

LatestRevision = IsMyFileLatest(); //一些应检查svn并比较文件工作副本的方法。

if (! LatestRevision)  //this flag compares with the Head Revision
{
   //Display error message..The file is not the latest copy
}
else
{
  // Commit the file changes in the subversion server
  FileCommit();   //commits the file(whichever file im working to the server)     
}

为此,我需要在命令行中执行以下svn命令的帮助。

  1. 检查当前文件是否是最新文件?
  2. 仅提交目录中已修改的文件。
  3. 非常感谢有关subversion命令行的任何帮助或指示。

    谢谢,敬请期待

1 个答案:

答案 0 :(得分:1)

VisualSVN网站在位于here的Subversion上托管了一本“书”,它应该给你一个很好的起点 - 虽然我不知道你需要的确切命令使用......

有一章是命令的参考:

SVN Reference

解释有svn info可以帮助你做好。

编辑:

另一方面,在阅读改变后的标题后,svn status可能正是您要找的?

编辑2:

好吧,鉴于您的问题中使用的编程语言没有明确说明,而且它是如此常见的语法,我们可以把猜测比作击败死马的那个,这里有一个通用的小片段(在Windows世界)VBScript ...

Dim shell, svn
Set shell = CreateObject("WScript.Shell")
Set svn = shell.Exec("svn info [working_copy_path]")

WScript.Sleep 1000

Dim revision
Do While svn.StdOut.AtEndOfStream <> True 
    revision = svn.StdOut.ReadLine
    If left(revision, 8) = "Revision" Then
        Exit Do
End If
Loop

WScript.Echo revision

我对所使用的Sleep机制感到骄傲,但幸运的是,我不是那里有(很多)责任的人,所以我会留下一个简洁的方法给自己和就把它作为一个例子。