[Twisted-Python] github, again
Jonathan Ballet
jon at multani.info
Wed Jun 5 01:56:09 MDT 2013
Hi, just shiming in,
On Tue, Jun 04, 2013 at 09:55:19PM +0100, Terry Jones wrote:
> > So when the code is ready, the feature branch including any accumulated
> commits (history) will
> > get merged - and not a clean diff against the main repo?
>
> I'm very far from being a git expert. In fact, I'm kind of the opposite -
> git and I have a stormy relationship and everyone has to tell me what to do.
>
> But, I believe this is what git rebase is mainly used for. You can rebase
> your branch against an updated master and (I'm guessing) make your changes
> look like a single diff. Some people don't like that as it changes history,
> others do like it and say yes, that's the point - clean up the history so
> the commit log isn't full of tiny changes that were all made in order to
> effect some change (i.e., address a given ticket/issue).
This is actually called a "squash" in Git terminology - Git has an
option called "--squash" for the "merge" command which precisely do
that. This is, FYI, part of the merge policy used by projects like
PostgreSQL for example [1]
I'm not sure we can exactly say it changes the history: a brand new
commit is actually created, which is the sum of all the commits from the
branch which is merged, but as I see it, it's as if someone else
commited this new feature, and branches become completely throwable in
the end.
I let the Git manual explain the squash feature (extract from "git help
merge"; the second sentence is probably the most useful):
--squash, --no-squash
Produce the working tree and index state as if a real merge
happened (except for the merge information), but do not actually
make a commit or move the HEAD, nor record $GIT_DIR/MERGE_HEAD
to cause the next git commit command to create a merge commit.
This allows you to create a single commit on top of the current
branch whose effect is the same as merging another branch (or
more in case of an octopus).
With --no-squash perform the merge and commit the result. This
option can be used to override --squash.
Jonathan
[1]: http://wiki.postgresql.org/wiki/Committing_with_Git
> I'm REALLY far from being a git pro, so someone else should confirm/correct
> this.
>
> Terry
More information about the Twisted-Python
mailing list