Improving Git workflow
jannis at xfce.org
Thu Oct 10 01:18:26 CEST 2013
On Wed, 9 Oct 2013 17:04:14 -0500
Felipe Contreras <felipe.contreras at gmail.com> wrote:
> To visualize the changes in these two branches and nothing else, I run
> this command:
> % gitk xfce-4.10...master
I'm not sure this makes a lot of sense. xfce-4.10 and master have a
common root (the commit at which the xfce-4.10 branch was created) but
after that they no longer necessarily share history; e.g. commits that
have been cherry-picked from master into xfce-4.10 may have a different
SHA1 and thus may show up in the xfce-4.10..master comparison even
though they are actually present in both branches.
But anyway... ;)
> So my first proposed change is to have a separate branch for
> translations, and continuously merge that branch. I cleaned up the
> last commits of the master branch to show how it would look like, and
> the advantages, and it would look something like this:
> Now it's clear what commits are translations, and what actual
> changes, but it doesn't end there.
That's not too bad an idea. Or you could just do this:
git log --oneline xfce-4.10..master | grep -v l10n
> If you do this, you would arrive at what actually was worrying me:
> * f4e7c27 Post release tag bump.
> * 48000a2 (tag: xfce4-panel-4.10.1) Updates for release.
> * ef18491 Bugfix in icon/pixbuf resizing code.
> * a51135e Fix icons not probably resizing when requested.
> * 4294d60 Autotools updates.
> * 217e17d Ignore GVarueArray compiler warning.
> * 1965297 Use G_ENABLE_DEBUG to set fatal messages.
> * eb60ba8 Fixed DnD markers with non-square small items.
> * 31f9236 Actions: Fix logic of session saving (bug #8857).
> * 6ef607c Panel: Emit save signal for plugins.
> * dd5c7fb Libxfce4-panel: Fix typo in the API docs.
> * bac9f33 Post release tag bump.
> It seems the stable branch is not properly maintained. There's a lot
> of good stuff in 'master' that should be backported, so the users
> don't have to wait years for the fixes and improvements. But it's
> really hard to cherry-pick the good stuff, if you cannot easily see
I think you are missing what I mentioned initially. Most fixes are
probably in both branches. Here are two examples:
20cf9e8 Use G_ENABLE_DEBUG to set fatal messages.
17643fd Actions: Fix logic of session saving (bug #8857).
1965297 Use G_ENABLE_DEBUG to set fatal messages.
31f9236 Actions: Fix logic of session saving (bug #8857).
Of course the commits are not 100% the same because the commits that
they were applied against differ (e.g. because master has moved on
since xfce-4.10 was branched).
> Secondly, you don't need tags named like xfce4-panel-4.10.0, we are
> already in xfce4-panel, there's no need to specify the name again. A
> good convention is what git.git does; v4.10.0. Similarly, you don't
> need an xfce-4.10 branch, it can be named 4.10.
Both are equally good conventions. A convention is just a matter of
taste. Some projects do it this way, some do it differently.
> Third, you don't need personal branches like andrzejr/deskbar2, that's
> what personal repositories are for. See for example:
We're using Git here, not bzr (where, I believe every branch is
essentially a separate repository?), we might as well benefit from its
super lightweight and fast branching without having to set up separate
repositories for everyone. Personal branches are a perfectly fine way
to use Git. Easy merging, no fiddling with multiple remotes, no admin
overhead. You'll have to try very hard to convince me of the
> This is not some random rant. I'm willing to help you guys in the
> transition if you are interested, and even provide scripts if needed.
> Also, I can provide the patches for the automatic version bumps.
> What do you think?
Thanks for your feedback. I can see how merging translations in might
make things a bit cleaner. The decision is up to Nick and the other
active contributors though. I'm just throwing my opinion in for the fun
of it. ;)
More information about the Xfce4-dev