[Kde-scm-interest] On Amarok Switching to Git

Robert Wohlrab robert.wohlrab at gmx.de
Sun Jan 18 17:15:43 CET 2009


On Sunday 18 January 2009 16:52:18 Ian Monroe wrote:
[..]
> >  * who will have push rights? To which branches? Who can create branches?
> > Which branches/repos will allow force-pushes?
> Well everyone will have push rights. I don't know what a force push is.
Normally you can only push if you do a fast forward push (I know that your 
local branch can have names you want but I assume in this example that 
branches on server and your branches have the same name and your branches 
track the branches on the server)

server:
A -- B -- C <- master

You:
A -- B -- C -- D -- F <- master


This works wonderful and server will have
A -- B -- C -- D -- F <- master
afterwards

But you can some cruel things like moving your HEAD (master in this case) to 
an older commit or a commit which is not a (grand^x)son of the current commit 
and force that the server should do the same

Server
A -- B -- C -- D -- F <- master

You:
A -- B -- C -- D -- F <- local_branch_blablub (which will not get pushed)
     \
       -- K -- J <- master

A normal git push will give you a "dont do that" but you can force it by using 
-f flag. If the server things you are allowed to do such thing the server will 
end in following situation:

A -- B -- K -- J <- master

The next one which wants to pull and had server's previous master must do a  
merge (or reseting his own master branch - which he will not do of course). So 
it will end up in something like:

A -- B -- C -- D -- F
      \             \
       -- K -- J --  L <- master

As you can see it isn't a good idea to do a forced push.

Please note that git tracks everything by its sha1. So rebasing a branch will 
change its sha1's and you will get the same stuff as above. So I would say 
nobody should have forced push rights access to the official branches. But 
this is something your guys have to "auskaspern" (sry, don't know an 
equivalent word in english - just speak with other amarok devs what they think 
about forced pushs)

> >  * the general layout of the server hierarchy (Amarok may be the first,
> > but we hope it's not the last, so we need some future-proofing)
>
> I don't understand why? The Amarok git repo can move around in future.
But good designs will not move around. We can do the "lets just do it and 
change it in the future sometimes" or the "lets design it in a sane way so we 
can build on it" approach. I dont know which one is the right solution but one 
of them is the definitely the wrong.

> > And most importantly:
> >  * who is going to do all this work?
> >
> > I'm not volunteering.
>
> Well I did... though obviously I can't volunteer the sysadmins and
> will need some help. Why I sent this email. :)
Did you try to convert the whole/partial/whatever repo of amarok and checked 
if it you get a good result (checked with graphical tools and give the repo to 
a guy with more experience(tm)?). 
-- 
Robert Wohlrab


More information about the Kde-scm-interest mailing list