Our big software project uses Git (the version control system) in a CVS mode, with a single central repository to which we push commits (after they pass the check-in test suite). This can be good, because it forces us to fix small but annoying things -- like setting the correct e-mail address! I was testing on a different machine than my usual development workstation; I made some commits there, and then pushed to my workstation's local repository (Git shines for stuff like this). Then, I activated the check-in tests, but the push failed: my e-mail address wasn't set! (The tests check for that -- handy!)
While I had set my e-mail address for Git correctly on my workstation, I hadn't set it on the other machine. There were seven commits sitting on my workstation (where I run the check-in test suite) with the wrong e-mail address. Here's how I started the fix. First, I ran
$ git rebase -i HEAD~7
which let me fix up the last 7 local commits. "-i" means "interactive," so Git fired up a text editor and let me decide which commits to change (and how). I then repeated the following three tasks seven times:
$ git commit --amend --reset-author
(Edit the commit message -- no author e-mail address here, but it gets fixed due to "--reset-author")
$ git rebase --continue
That fixed it! There's probably an easier way, but I was pleased.
11 October 2010
Subscribe to:
Post Comments (Atom)
3 comments:
speaking of email addresses. your link on the blog to your email address does not appear to work. just thought you would like to know
Thanks for the heads-up! I should know better than to expect that computer things always work magically ;-)
It should work now -- feel free to give it a try!
Post a Comment