Xfce Wiki

Sub domains
 

Git Migration

The git conversion is done. Most of the stuff below is accurate. We ended up migrating all our i18n stuff to Transifex, and we don't allow direct commit access to the git repositories by translators. All code committers have ssh accounts on the server that are restricted using git-shell. For more information, see our git how-to page.

We intend to switch to Git at some point in the near future. This is a collection of links and resources about transitioning from svn to git so I don't forget them.

Resources

Stuff That's Done

  • svn username → realname+email mapping
    • People with a https account on svn.xfce.org: Set your personal details here.
    • Makefile handles generating this mapping.
  • SVN → git conversion script
    • See here. So far it's working (it's about 2/3 of the way through the main Xfce repository, haven't gotten to goodies yet), but needs a lot more testing, and the generated repos haven't been verified yetBrian Tarricone 2009/05/06 20:07
  • Generated git repo verification script.
    • See here. It seems to work well so far, but still needs a little more work — Brian Tarricone 2009/05/09 00:43

Stuff In Progress

  • pre-commit permissions-handling hooks (Brian)
  • commit mail hook (Jannis)
  • i18n checkout tool (untested version)

Missing Stuff

  • I18n stats pulled from git (Stephan, I presume, will do this)

Open Questions (please discuss!)

  • The big one: do we really want to do this? Are there any legitimate objections or reasons why we shouldn't switch to git?
    • I obviously think this is the right way to go, but maybe there are convincing reasons to the contrary. — Brian Tarricone 2009/04/19 14:51
    • I prefer a DVCS over CVCS, since it allows me to use VC features when I do not have access to an inet connection. I don't have a particular preference for git, prolly any DVCS will do. — Stephan Arts 2009/04/20 12:16
    • Note that hg, bzr, mtn, etc. aren't really on the table. They're all fine VCSes, but it's clear that the majority of people who commit actively are familiar with and like git.
  • Do we continue to have separate trees for 'xfce' and 'goodies', or do we just have one big tree?
    • Personally, I'd prefer one big tree, and the apps that comprise the core Xfce releases is independent of that. — Brian Tarricone 2009/04/19 14:51
    • I'd also prefer one big tree. With SVN we just had two repositories (xfce, goodies) but with git each component will have its own repository anyway. It's just a matter of which URL to use to check them out then. — Jannis Pohlmann 2009/04/19 15:24
    • I'm ok with that too, as long as we can still separate the permissions. How are the po permissions handled in git, is it possible to set this on directory level? — Nick Schermer 2009/04/19 18:55
      • Git has no support for access control. If we want fine-grained permissions we'll have to implement an access control script in one of the hooks that can reject a commit. — Jannis Pohlmann 2009/04/19 23:37
    • I prefer one big tree too, I don't see a good reason why we should split that up. — Stephan Arts 2009/04/20 12:16
  • How do we handle per-user repos – I want to allow people to create throwaway repos or just host “middle ground” stuff that's somewhat Xfce/Gtk/whatever-related, but maybe not quite “Xfce enough” to be in the main repo? (e.g., see cgit.fd.o; scroll down a bit to see the ~ repos.)
    • Possibly we'd do this with a Gitorious instance, but need to investigate more. This can be punted to later. — Brian Tarricone 2009/04/19 14:51
    • I would prefer the freedesktop way for this. Xfce core components start with xfce/{xfwm4,xfdesktop,xfce4-panel,thunar,…}, goodies/… and ~nick/something. — Nick Schermer 2009/04/19 18:55
  • Branch/tag name rewriting: we have old nasty branch/tag names like “xfce_4_4” and “xfce_4_4_2” in our tree because of CVS's limitations back in the day. We never remedied this situation when we switched to SVN. Prettier names like “xfce-4.4” and “xfce-4.4.2” are possible now. Should these be changed?
    • Current script does change these. Jannis agrees this is a good idea. — Brian Tarricone 2009/05/06 20:07
  • The GNOME guys rewrote their commit messages on the fly while converting to make them more like the git recommended commit msg pattern (max 72 char single line shortlog, blank line, freeform larger description). Should we do this too?
    • Probably not. Our commit messages are all over the place with regard to how they're formatted, and xdt-commit generates commit messages that are pretty impossible to extract one-line summaries from. Jannis agrees. — Brian Tarricone 2009/05/06 20:22