application icongmusicbrowser

git

Git is a distributed revision control, that you can use to keep up to date to the latest modification in gmusicbrowser. And as gmusicbrowser doesn't need compilation (apart from translations), git makes it very easy to follow gmusicbrowser development.

gmusicbrowser git repositories :

this link will download a snapshot of the latest version : http://github.com/squentin/gmusicbrowser/tarball/master

The repository contains 2 branches :

  • master : the default branch, that currently contains v1.1.x
  • v1.0.x

This mini-guide will show you some basic commands that you will need to follow gmusicbrowser development with git, visit the official site for more information.

Initialization

git clone http://github.com/squentin/gmusicbrowser.git

will create a “gmusicbrowser” folder with the latest version of gmusicbrowser, it also contains all gmusicbrowser's history since v1.0 (in gmusicbrowser/.git/)

All following commands are to be run from this gmusicbrowser folder.

The default “master” branch contains the latest version. You can create a local branch to follow v1.0.x with :

git checkout -b v1.0.x origin/v1.0.x

Running gmusicbrowser

You can run the currently checked-out version simply by running :

./gmusicbrowser.pl

You can of course run it from any folder by using the full path, for example :

/home/myname/gmusicbrowser/gmusicbrowser.pl

You can use the -C gmusicbrowser option to specify an alternate configuration file :

./gmusicbrowser.pl -C mynewconf

Changing version

You can switch between branches or tagged version with the branch name/tag name/hash :

git checkout master

releases are tagged with their version number, for example :

git checkout v1.1.3

will check out v1.1.3

Updating

to sync your repo with the latest changes :

git fetch

then, to update your “master” to the latest “master”

git checkout master
git merge

(“git pull” can replace a fetch and a merge)

if you make any modification to tracked files, you won't be able to do checkouts, you'll first need to reset changes with :

git reset --hard

Translations

To create/update the translations files in gmusicbrowser/locale/, you'll need to do :

make locale

note that this requires the gettext package

As this modifies po/*.po you'll need to follow with a

git checkout po/*.po

To revert the changes to po/*.po files, else git won't let you update the branch or change branch (to prevent the loss of these modifications).

tips

The “git status” command can be helpful to know the current status : current branch, which tracked files are modified …

An even better way is to use a command prompt that indicates the current branch, if there are untracked/staged changes, and more.

Making local changes

If you want to make small changes to gmusicbrowser's code for your own use, you can easily create your own local branch (based on the current branch, for example “master”) :

git checkout -b mybranch

and after you update master with the above instructions, you can update your branch with :

git checkout mybranch
git rebase master

if there are conflicts, you can resolve them manually or use ”git rebase –abort” to abort the rebase. Do not use rebase on branch you published, as rebase rewrite the history of the branch, use merge instead.

Cloning branches from other repository

You can easily track branches from other repository, for example, to track ochosi's branch :

git remote add ochosi git://github.com/ochosi/gmusicbrowser.git
git fetch ochosi
git checkout -b ochosi ochosi/master

The first line creates a new remote named “ochosi” (you can list the remotes with “git remote”)

The second line fetches the remote's data, and create the remote branches, here ochosi/master (you can view it with “git branch -a”)

the third creates a local branch “ochosi” that tracks the remote branch “ochosi/master”

guide/git.txt · Last modified: 2013/04/23 17:31 by squentin
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0