[Webkit-unassigned] [Bug 36394] Include git commits in the diff for webkit-patch upload/land.

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Mar 23 17:05:49 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=36394





--- Comment #15 from Ojan Vafai <ojan at chromium.org>  2010-03-23 17:05:48 PST ---
(In reply to comment #14)
> This seems strange to me.  We should discuss in person.

I'll attempt a written discussion since I'm sure others will wonder the same
thing.

> The old "git-send-bugzilla" command took a commit id and everythign forward
> from that revision was sent.  That was like how "git diff" worked. 

git-send-bugzilla sent a separate patch for each local commit. git diff gives
you the diff of the working copy. Those seem totally different to me.

> The new
> webkit-patch used to work like that, and then was changed to work more like git
> cherry-pick.

I don't understand how it's like cherry-pick now.

> I'm confused by this new symantecs.  I'm also confused as to how
> you'll make land or upload work sanely with changelogs.

Hopefully this will clarify. The new behavior makes sense if you think about
"webkit-patch land" will do.

Consider a branch with the following:
A--B--C--D

Where C and D are local commits and A and B are in the SVN repo. And, just for
fun, lets say you also have some changes in the working copy.


Current state of the world:
webkit-patch upload: uploads only your working copy changes
webkit-patch land: commits your working copy changes locally (lets call that
commit E), then proceeds to commit C, D and E as separate commits all with the
same commit message


git-send-bugzilla behavior:
git-send-bugzilla C: uploads two patches, C and D. Leaves the working copy
alone.
git-send-bugzilla D: uploads patch D

There is no git-send-bugzilla land.


New state after this patch:
webkit-patch upload: uploads a single-diff with all the local changes (C, D and
working copy)
webkit-patch land: commits a single commit (E) with all the local changes (C, D
and working copy) and resets your branch to the svn repo so you end up with
A--B--E


Basically, the current state of the world only works if you keep all your
changes in the working copy. In order to upload or commit, you need to "git
reset trunk" or some equivalent action.

The git-send-bugzilla world could make sense if there was a way to commit a
single local commit to svn, but dcommit will commit all local changes. Even if
you could do this, I'm not sure it would be a great workflow.

The new state lets you have multiple local commits that get uploaded as a
single patch and get committed as a single commit. This allows people to have
workflows where they actually use git's ability to do local commits without
needing to do a bunch of reset/rebase junk in order to upload/land a patch.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list