如何在提交之前看到'git svn dcommit'的变化?

时间:2012-03-19 18:24:49

标签: git svn git-svn

使用svn-git,我怎样才能看到即将发布的内容 与git svn dcommit

以下是我运行的命令:

git svn  clone file:///svn/test1 test1-git
cd test1-git
echo "first line" > test1.txt 
git add test1.txt 
git commit 

现在它已经致力于git存储库 - 很好。但是在我运行git svn dcommit之前,我想看到包含将提交给SVN存储库的更改的差异。

4 个答案:

答案 0 :(得分:16)

如果您的远程分支被调用git-svn(如果你只是做一个普通的git svn clone则调用它),那么你可以在当前分支和git-svn之间看到差异:

git diff git-svn HEAD

您将看到当前分支中存在的所有更改,但不会显示在svn存储库中。

答案 1 :(得分:9)

'git svn dcommit --dry-run'的输出可以像这样再次输入git:

git diff-tree 2282c630eeef26fecbc3f3519be55a9dce094c80~12282c630eeef26fecbc3f3519be55a9dce094c80 -u

注意最后的'-u'。 然后你会看到差异。

如果您只想看到'svn stat'之类的内容,可以使用'--stat':

krausem-> git diff-tree f00e37882b7186e9e7f38c2fa28778e39734e2e7~1 f00e37882b7186e9e7f38c2fa28778e39734e2e7 --stat
 .../src/main/webapp/tiles/vertrag/freiKlauseln.jsp |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

答案 2 :(得分:3)

第二个答案(在评论后修改 - 表明--Dry-run不够)

根据您的期望,可能可以像这样使用git日志:

git log remotes/svn.. --oneline

注意结束时的两个句号。这将显示自上次共享父节点以来当前分支上的所有提交。在典型的git-svn用法的情况下,这将是自上一次dcommit以来的所有本地提交。 (这假设您的远程SVN分支名称是" remotes / svn"。您可以运行" git branch -a"列出所有分支。)了解这是什么很重要正在做而不是只是逐字地运行它,但也许这提供了更多你正在寻找的东西。


第一个答案

您可以在dcommit:

中使用--dry-run
git svn dcommit --dry-run

请参阅此重复的问题/答案:How to see what has been checked into git, but hasn't been committed to svn via dcommit?

答案 3 :(得分:1)

当我处于启动git svn dcommit的情况时,我首先打开gitk并要求它向我显示要转移的提交:

gitk git-svn..

这假设您的上游SVN仓库实际上被称为git-svn Tomas mentions。如果您不确定上游SVN仓库的名称,只需启动gitk并搜索您未创建的分支(并发出Git-SVN-ish)。

相关问题