TechBase git policies, infrastructure documentation, please

Alexander Neundorf neundorf at kde.org
Mon May 7 21:15:10 BST 2012


On Sunday 29 April 2012, Stephen Kelly wrote:
> Alexander Neundorf wrote:
> > On Sunday 29 April 2012, Stephen Kelly wrote:
> >> Alexander Neundorf wrote:
> >> > git is a powerful tool, and you can use it in many different ways. It
> >> > needs to be easy to find out how git is intended to be used in KDE. I
> >> > don't know where this is documented. I expect this on techbase.
> >> 
> >> It is indeed not on techbase as far as I can see too.
> >> 
> >> Do you have specific questions?
> >> 
> >> Are you looking for tutorials on how to use git generally (not KDE
> >> specific),
> > 
> > I kind of manage to get along with it in the mean time, if I know what I
> > should do.
> > 
> > Ok, here's a question: I'd like to modify the buildsystem for
> > kdelibs/tier1/itemmodels/, but in some branch so others can have a look
> > at it. What is the recommended way to do this ?
> 
> It this specific case, it's likely that the whole of what you want to
> change and have reviewed can be shown as one single patch (even if you
> split it into multiple patches when you commit).
> 
> The cases where it takes more than one patch, that is also easiest (for me
> at least) as just creating a file with the patches and sending it with
> email. Reviewboard is only practical for one patch at a time afaik, but I'm
> not a Reviewboard fan anyway.
> 
> >> or are you looking for policies (KDE specific)?
> > 
> > This one.
> > What is the git workflow/are the git workflows to use in KDE.
> > Including use cases like doing minor fixes, normal feature development,
> > experimental stuff to show somebody, etc.
> > 
> > Ideally including the typical git commands to use for that.
> 
> Assuming you know how to make commits and assuming you start with a clean
> checkout:
> 
> vi tier1/itemmodels/CMakeLists.txt
> # ...
> git commit -m "lorem ipsum"
> vi tier1/itemmodels/CMakeLists.txt
> # ...
> git commit -m "prink the retjuts"
> vi tier1/itemmodels/CMakeLists.txt
> # ...
> git commit -m "unfubar the dolors"
> 
> Then
> 
> git format-patch --stdout origin/frameworks
> 
> will print out the patches and commit messages. Redirect it to a file and
> send the file for review.
> 
> Then someone will give feedback and might say that there is a small change
> needed to the first patch (the "lorem ipsum" one).
> 
> You do this:
> 
> git rebase -i origin/master
> 
> You see this with some instructions:
> 
> pick 514c03d lorem ipsum
> pick 2ab30eb prink the retjuts
> pick 9266e12 unfubar the dolors
> 
> you replace 'pick' with 'edit' in your editor, save and exit.
> 
> You make the change suggested in the review.
> 
> You use:
> 
> git commit --ammend
> 
> Then
> 
> git rebase --continue
> 
> Then use gitk and you will see that the lorem ipsum commit now has your
> change.
> 
> http://book.git-scm.com/4_interactive_rebasing.html
> 
> Google 'interactive rebase' for more.
> 
> Then when you push, you might get this:
> 
> To git at git.kde.org:kdelibs
>  ! [rejected]        frameworks -> frameworks (non-fast-forward)
> error: failed to push some refs to 'git at git.kde.org:kdelibs'
> To prevent you from losing history, non-fast-forward updates were rejected
> Merge the remote changes (e.g. 'git pull') before pushing again.  See the
> 'Note about fast-forwards' section of 'git push --help' for details.
> 
> Just do this:
> 
> git pull --rebase
> 
> Then git push again.
> 
> > If we have multiple recommended workflows, it would be really good to
> > have an overview where I can see which workflow should be used where.
> > 
> > E.g. below you describe what should be done in kdelibs.
> > Now if I want to fix something e.g. in kdegames, where do I find out what
> > workflow should be used there.
> 
> You look in gitk and see what the people do. If people commit directly to
> the branch you want to commit to, you do the same. It would be unusual for
> that not to be the case, so just assume that you always just make commits,
> rebase/rewrite them until they are correct, git pull --rebase, and then git
> push.
> 
> > This should be on techbase.
> > 
> > Did we settle on the branch names ? Is this documented on techbase, in
> > the git section ?
> 
> To keep useful history, don't push work branches to kdelibs.git. Instead
> push to a scratch repo, ask for reviews of that branch, and when it's
> ready, rebase it to master in kdelibs.git, and push that.
> 
> http://community.kde.org/Sysadmin/GitKdeOrgManual#Personal_scratch_reposito
> ries

It would be just *great* if you could put this on techbase.kde.org :-)

Alex
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20120507/49069227/attachment.htm>


More information about the kde-core-devel mailing list