Improving Git workflow

Jannis Pohlmann jannis at
Thu Oct 10 01:18:26 CEST 2013


On Wed, 9 Oct 2013 17:04:14 -0500
Felipe Contreras <felipe.contreras at> 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
> it.

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
downsides. ;)

> 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. ;)

  - Jannis

More information about the Xfce4-dev mailing list