如何使用SVN存储库在指定日期(版本,标记)之后的特定用户提交的所有更改中创建补丁

时间:2012-07-03 08:42:14

标签: svn

如何使用SVN存储库在指定日期(版本,标记)之后由指定用户提交的所有更改创建补丁。 我的想法是Eclipse和Intellij Idea,但也可以使用乌龟。

2 个答案:

答案 0 :(得分:0)

假设您的用户名是“test”,并且您想要确定在某些指定日期之间所有文件的更改

svn log <url> --username test -qv -r {2010-11-01}:{2011-05-04} > log.txt

答案 1 :(得分:0)

如果PowerShell是可接受的选项,那么这是一个可以完成工作的脚本:

$RepoAddr = "https://url/to/your/repo";
$FromRev = "140";
$ToRev = "HEAD";
$WantedAuthor = "yannick";
$PatchFile = "$($WantedAuthor).patch";

$CmdLine = "svn log -r$($FromRev):$($ToRev) $RepoAddr --xml";
$Logs = ([xml](Invoke-Expression $CmdLine));

foreach ($Commit in $Logs.log.logentry)
{
    [string]$TmpAuth = $Commit.author;
    if ($TmpAuth.CompareTo($WantedAuthor) -eq 0)
    {
        [int] $TmpRev = $Commit.revision;
        $PatchCmdLine = "svn diff -r$($TmpRev-1):$TmpRev $RepoAddr";
        Write-Host $PatchCmdLine;
        Invoke-Expression $PatchCmdLine | Out-File $PatchFile -append;
    }
}

希望这会有所帮助!!