workflow question
- From
- Patrick Doyle <wpdster@gmail.com>
- Date
- Jul 24, 2007, 13:53 UTC
- Message-ID
- <e2a1d0aa0707240653x55dd82b3pf9e3986f5c3bb344@mail.gmail.com>
I'm still trying to figure out how to adapt my workflow to git or git to my workflow, and I've come up with yet another question or two...
I tend to work detached from our central SVN server, and I'm attracted to the fact that I can work on my laptop, commit changes as I go along, and later synchronize them back to the server.
On my current project, I am sole developer (at present) and the central SVN server serves primarly as an off-site backup and historical archive.
Enough of the setup, here are the questions...
1) I would like to make a (git) branch on which I can commit hourly/daily/periodically as I add in a new feature (so that I can roll back to the "Gee, I thought it was behaving yesterday -- what does that code look like?" commit when I need to), but I don't want to send all of the "commit as of 12:32 on Thursday" commits back to the SVN server when I'm done. Do I want to use a "squash" merge to merge my changes back to the master branch before I synchronize with the subversion server? Or do I use the "--no-commit" option to merge? Or do I try something else? The first/last time I tried this, I ended up with a fast-forward merge back into master, which included all of my stupid little commit messages. I would rather one commit message that read "Added XYZ feature".
2) When I don't fork a branch, and I don't commit until I've completed the particular feature I'm working on, I can get a fairly good idea of where I am and what I was doing last (which might be 5-7 days ago, given high priority interrupts on other projects, summer vacations, etc...) just by running a "git status". I see that there are 7 new files, and 2 modified files. I know that, when I fork my branch, I can use "git diff master" to see what's different between my branch and the master, but then I get the diff of all of the changes as well, which is too much information. "git diff --name-only" and "git diff --summary" are closer, but I can't tell what's been added vs. what's been changed. Any suggestions?
As an aside, is there an undocumented option to "git status" to produce a less verbose report of what's been changed and what's not checked in? Perhaps a single line per file with a one or two letter indication of the status of the file followed by the name? If not, would there be any violent objections to my submitting a patch to add such a feature?
That's enough for now. Thanks for reading this far :-)
--wpd