GitUsage
|
Size: 2424
Comment:
|
Size: 2849
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 39: | Line 39: |
| foo xorg 138 % git-mergetool | foobar xorg 138 % git-mergetool |
| Line 47: | Line 47: |
| Merge leaves behind some temporary files if there are conflicts, so clean them {{{ foobar xorg 139 % git clean Removing debian/changelog.orig Removing debian/control.orig }}} Now you can do other changes if necessary |
|
| Line 55: | Line 61: |
| git commit -a | foobar xorg 145 % git commit -a |
| Line 59: | Line 65: |
| git push origin ubuntu | foobar xorg 146 % git push origin ubuntu |
| Line 61: | Line 67: |
| and roll a tarball, don't forget to add -i/I as necessary {{{ foobar xorg 147 % debuild -I ".git/*" -S -sa }}} after that the package is ready to be uploaded! |
Ubuntu X-SWAT uses git now
We are now using git for the packages with biggest set of changes, namely "xorg" and "xorg-server". This page is a simplified version of [http://wiki.debian.org/XStrikeForce/git-usage the Debian git-usage] page specifically for our needs.
Git archive policy
Basic tutorial
First you need to pull the repository on your disk, and change the working branch.
foobar xorg % git clone ssh://user-guest@alioth.debian.org/git/pkg-xorg/debian/xorg.git foobar xorg % git checkout origin/ubuntu Note: moving to "origin/ubuntu" which isn't a local branch If you want to create a new branch from this checkout, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b <new_branch_name> HEAD is now at cdbd698... Prepare changelog for upload.
Now you are on the remote branch, and you need to create a local branch from origin/ubuntu
foobar xorg % git checkout ubuntu Previous HEAD position was cdbd698... Prepare changelog for upload. Switched to branch "ubuntu"
Check the success by running these
foobar xorg % git status # On branch ubuntu nothing to commit (working directory clean) foobar xorg % git log
The first thing usually is to merge with a new Debian release
git pull . debian-unstable <tag>
It most likely complains that there are conflicts, so then make sure you have a merge tool of your choice installed (meld is one alternative) and then run git-mergetool
foobar xorg 138 % git-mergetool
Merging the files: debian/changelog debian/control
Normal merge conflict for 'debian/changelog':
{local}: modified
{remote}: modified
Hit return to start merge resolution tool (meld): Merge leaves behind some temporary files if there are conflicts, so clean them
foobar xorg 139 % git clean Removing debian/changelog.orig Removing debian/control.orig
Now you can do other changes if necessary
<edit> dch git diff
and commit them.
foobar xorg 145 % git commit -a
When everything is set, push the changes to the repository
foobar xorg 146 % git push origin ubuntu
and roll a tarball, don't forget to add -i/I as necessary
foobar xorg 147 % debuild -I ".git/*" -S -sa
after that the package is ready to be uploaded!
Recovering from mistakes
There are (at least) two ways to revert a change, either reverting and older commit with
git revert <hash>
or by resetting the HEAD if you want to just revert the latest (set of) change(s)
git reset <hash of the new HEAD>
Reverting leaves a message on the log, so it's not a "clean" way to undo changes, but necessary when the changes are already committed to the repository, or when there are changes made after that commit.
X/GitUsage (last edited 2012-08-16 22:16:30 by static-50-53-79-63)