tags:

views:

243

answers:

1

I'm looking for a command in git-svn that will show me the changes I have committed to my git repository but that aren't yet committed to the central svn repository. I'm looking for something that works like svn status, but I'm using git-svn, and unfortunately, git svn status is not a valid command.

I tried git status but it does not solve this problem, as it shows changes that haven't been committed to my local git repo.

I also tried git svn dcommit --dry-run, but it doesn't tell me which files are ready to be dcommitted - it only shows the repository URL.

+1  A: 

Assuming the branch for the remote Subversion repository is at remotes/git-svn, run the following:

git svn fetch

The fetch will ensure that remotes/git-svn is up-to-date. (Thanks to Mark for pointing this out in a comment.)

git diff --name-status remotes/git-svn

This should show you the name and status of all the files that have been committed to git but not to Subversion, just like the svn status command.

In case you're not sure where the branch containing the Subversion remote repository is located, you can run:

git branch -a

which should produce output similar to the following:

* master
  remotes/git-svn

You can probably guess from this that the remote Subversion repository is in remotes/git-svn.

Josh Brown
It might be worth adding a note at the beginning of the answer to the effect that it's a good idea to run `git svn fetch` first to make sure that `remotes/git-svn` is up to date.
Mark Longair

related questions