[Kde-games-devel] Move to git now?

Frederik Schwarzer schwarzer at kde.org
Thu Feb 2 11:53:35 UTC 2012


Am Donnerstag, 2. Februar 2012, 02:14:19 schrieb Ian Wadham:

Hi,

> Re the move to git, I cannot see any real benefit in it, neither
> for myself nor for the group, so why do it?

A man here once tried get rid of his garbage can. He did not use it at 
all. He brought his daily oddments diectly to the waste management 
company. Nevertheless the court ruled that he had to pay for his 
garbage can, because it was a community thing and it has to be all or 
noone to keep it maintainable and cost effective.

I see it the same way here. The long-term goal is to get everyone out 
of SVN. Not because SVN is bad, but because it was "decided" once. 
Back then, the goal was to shut down the SVN server. I guess the 
commitee members did not anticipate that the migration would take that 
long.

The current state, while not being ideal, does not kill any effort 
now, afaict. If it would, voices shouting to get the migration over 
with would be louder in that case. But it's becoming a nuisance after 
all.

Long story short: KDE is moving; we are part of KDE.

In case the KDE-wide plan changes and a dual-SCM infrastructure is put 
in place officially, it would be different and we could re-evaluate 
the option of staying in SVN.

However, I would still vote for Git. At first I found Git hard to use 
and found myself in situations where I had to remove the whole repo 
and re-clone it because I could not make sense out of the error 
messages and noone could help me because I was not able to explain how 
I got into that mess. But Git improved quite a bit since then and 
together with me getting more used to it, it sure feels like an 
improvement over SVN in terms of the development process.
To be more explicit:

"git add -p" and "git bisect" are really helpful tools once you get 
the hang of how to use them properly.

I use "git svn" for all my SVN-related KDE work. It is not really a 
"production-ready" workflow. So it is not an option to make it an 
"officially supported" way of working in KDE. Empty folders anyone? :)


> AFAICS, the only reasons given for the change are like "it's the
> latest", "Linus wrote it", "the rest of KDE is doing it", "SVN is
> old hat", etc.  I do not see these as being valid reasons on their
> own.

They are not. Well "the rest of KDE is doing it" actually is valid, 
given that we move as a community. The initial effort might have come 
through one or more of the "invalid" reasons. But that should not be 
something to be discussed at this point.

For me it's really technical. Git has some pretty nice features as 
stated above. :)


> I am very happy with SVN.  It keeps the code safe, has a full audit
> trail, allows a revision to affect more than one file and is easier
> to use than CVS was.

Indeed! I still see projects using CVS and I do not care to contribute 
to them anymore, if it's only minor stuff. I rather send an email to 
their list telling them what I would fix and hope they fix it 
themselves. It's not that I consider CVS so inferior that I do not 
want to touch it anymore. But my todo list is always long and I prefer 
not to use an SCM where I have to read how-tos to use it because noone 
is using it anymore. The same will eventually come for SVN in a few 
years.

I am not sure if comparing cvs->svn with svn->git would be valid. I 
have not used CVS enough for that. But I think that at some point many 
developers will refrain from touching code in SVN like I refrain from 
touching CVS.


> So if we move to git, what will be the benefits for individual
> programmers and for the KDE Games group in making the change? 
> Will the gains in productivity (churning out games code) outweigh
> the effort involved in changing?  How do we know?

We cannot know. I think there are gains in the personal workflow (as 
stated above). But yes, I also see some downsides.
- Global commits are no longer possible (I used them a lot to
  fix common issues a few years ago). So if an issue is found
  in one app, it is not possible anymore so simply just grep
  for the issue globally. I do not see a fix for that.
- Module builds are harder to accomplish. While I see solutions
  for this, I also see that not enough people care enough to
  actually put them in place.
- Dependency hell. I stopped building KDE from source due to
  this. It's ridiculous how some developers split their code.
  Well, it might even make sense from the developer's point of
  view, but they also lose testers. And pointing out that everybody
  could write a script to get module build pretty easily, does not
  solve the problem. Because noone will.
  However, I do not see that problem for kdegames. One repo per
  game seems reasonable. We could probably have a super repo that
  has a CMake file in it which fetches all the games. Additionaly
  we could maintain a kdesrcbuild config snippet in there to build
  all games. This has to stay on our agenda.


> Re the data-files problem, why bother with the history? I see
> on http://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git that you
> can select the revisions you want, so why not just archive earlier
> data files on SVN or its branches?  How often do you really need
> that history? Is it a big problem to follow another link to get
> it?

Given that SVN is supposed to go away, that's not an option.
Amarok created two repos. "amarok" and "history".
https://gitorious.org/amarok
The "amarok" history only goes back to 2010 or so.
(gitorious sucks, btw, so I cannot go further back)

I do not think something like that would be needed for the games 
though. If each game has its own repo, then size is no concern (unless 
proven otherwise by the actual trial run, of course).


> One worry about going non-monolithic is how anyone outside KDE
> Games (or inside, for that matter) can get a comprehensive list of
> all available games and can build all games as a block if so
> desired.  And how will people know when there is a new game or a
> major re-write or upgrade of an existing game.  I think we will
> need a "superbuild" at least, but that may not solve all problems.

The mailing list should be used to announce new/gone/rewritten games.

As for the list of all games -> 
http://projects.kde.org/kde_projects.xml
Every "project" under the "kdegames" module would be a game.
No, I do not consider that info easily digestible. Someone would have 
to write a script to extract the needed data. Preferably generic 
enough to be useful to all modules. But well, the irony. ;)


> Also, how will releases, mods to games and mods to libraries be
> co-ordinated?

Dirk does the tagging and release stuff.
For lib changes it works like it works for all projects with external 
dependencies. If the lib changes in a way that makes changes in the 
game necessary, do the changes in the game. It is quite convenient to 
do such changes in one commit in SVN, but it's not that bad to do it 
in two commits either.


> I do not want us to repeat any of the problems that
> arose in the first release of KDE with git repositories, nor any of
> the build problems I encountered early last year in trying to
> build Phonon, KDE libs and all its dependencies after they had
> been ported to git. There were teething problems there.

I would rather compare our approach to move with what happened in 
kdeedu. I am not sure how it went there, but everyone had gathered 
some experience with the steps needed to migrate so I guess it went 
way smoother than the first few modules/apps.

The migration will affect us, like every change does. But a change is 
not what brings things down. It's the way the people cope with it. So 
it is important that we stick together and do not attack each other 
for "being wrong" or "discussing too much" or "being a fanboy" and 
stuff like that. Git is just another tool. Just like SVN, it works. 
Some prefer gas stoves, some prefer electric stoves. But everyone is 
able to prepare a meal on each of those if they just stop arguing and 
start cooking.

That said, I was really happy to see Wolfangs rules arrive yesterday. 
:)

I will write a different mail for that now.

Regards


More information about the kde-games-devel mailing list