Table of Contents
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”