How do I show the SVN revision number in git log?

Zain picture Zain · May 20, 2010 · Viewed 20.9k times · Source

I'm customizing my git log to be all in 1 line. Specifically, I added the following alias:

lg = log --graph --pretty=format:'%Cred%h%Creset - %C(yellow)%an%Creset - %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative

So, when I run git lg, I see the following:

* 41a49ad - zain - commit 1 message here (3 hours ago)
* 6087812 - zain - commit 2 message here (5 hours ago)
* 74842dd - zain - commit 3 message here (6 hours ago)

However, I want to add the SVN revision number in there too, so it looks something like:

* 41a49ad - r1593 - zain - commit 1 message here (3 hours ago)

The normal git log shows you the SVN revision number, so I'm sure this must be possible. How do I do this?

Answer

VonC picture VonC · May 20, 2010

Consider the command git svn

  • it has a similar log function than git log: git svn log
  • it has the find-rev option (to retrieve the SVN revision from a SHA1 key) (introduced in git 1.6.0)

I am not sure of you can combine those two options in one command line though.
A script (a bit like this one which is not exactly what you want but still can give some idea) might be in order.


sdaau adds in the comments:

An example of this:

git svn find-rev $(git log --max-count 1 --pretty=format:%H)

Adversus adds in the comments:

Note that find-rev searches in the current branch, so if you're in master and rxyz happened in a branch, find-rev will not find it.
You can give -B (before) or -A (after) options for a wider search, see git svn find-rev man page section.