application icongmusicbrowser

no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Previous revision
Next revision
guide:git [2013/04/03 06:29] – external edit 127.0.0.1
Line 1: Line 1:
 +====== git ======
 +[[http://en.wikipedia.org/wiki/Git_%28software%29|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 :
 +  * github : http://github.com/squentin/gmusicbrowser
 +  * sourceforge : http://gmusicbrowser.git.sourceforge.net/git/gitweb.cgi?p=gmusicbrowser/gmusicbrowser;a=summary
 +
 +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 [[http://git-scm.com/documentation|official site]] for more information.
 +
 +===== Initialization =====
 +<code>git clone http://github.com/squentin/gmusicbrowser.git</code>
 +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 :
 +<code>git checkout -b v1.0.x origin/v1.0.x</code>
 +
 +===== Running gmusicbrowser =====
 +You can run the currently checked-out version simply by running :
 +<code>./gmusicbrowser.pl</code>
 +You can of course run it from any folder by using the full path, for example :
 +<code>/home/myname/gmusicbrowser/gmusicbrowser.pl</code>
 +
 +You can use the -C gmusicbrowser option to specify an alternate configuration file :
 +<code>./gmusicbrowser.pl -C mynewconf</code>
 +
 +===== Changing version =====
 +You can switch between branches or tagged version with the branch name/tag name/hash :
 +<code>git checkout master</code>
 +releases are tagged with their version number, for example :
 +<code>git checkout v1.1.3</code>
 +will check out v1.1.3
 +
 +===== Updating =====
 +to sync your repo with the latest changes :
 +<code>git fetch</code>
 +
 +then, to update your "master" to the latest "master"
 +<code>
 +git checkout master
 +git merge
 +</code>
 +
 +("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 :
 +<code>git reset --hard</code>
 +
 +
 +===== Translations =====
 +To create/update the translations files in gmusicbrowser/locale/, you'll need to do :
 +<code>make locale</code>
 +//note that this requires the gettext package//
 +
 +As this modifies po/*.po you'll need to follow with a
 +<code>git checkout po/*.po</code>
 +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") :
 +<code>git checkout -b mybranch</code>
 +and after you update master with the above instructions, you can update your branch with :
 +<code>
 +git checkout mybranch
 +git rebase master
 +</code>
 +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 :
 +<code>
 +git remote add ochosi git://github.com/ochosi/gmusicbrowser.git
 +git fetch ochosi
 +git checkout -b ochosi ochosi/master
 +</code>
 +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: 2022/05/23 01:30 by 127.0.0.1
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0