This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
wiki:development:git [2011/08/09 08:05] morty |
wiki:development:git [2013/01/10 14:45] kjellski [Checkout all repos:] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== | + | ====== |
- | Within the X2go project development code is shared via a public GIT repository hosted by DAS-NETZWERKTEAM in Kiel, Nothern Germany (Servers: Hetzner Online AG). For any technical | + | Within the X2Go project development code is shared via a public GIT repository hosted by DAS-NETZWERKTEAM in Kiel, Nothern Germany (Servers: Hetzner Online AG). For any technical |
===== Access ===== | ===== Access ===== | ||
- | ==== Browse the X2go GIT repository tree in a web browser ==== | + | ==== Browse the X2Go GIT repository tree in a web browser ==== |
Line 12: | Line 12: | ||
The Web service is also available as a https service. To make secure browsing as smooth as possible, please import this Root-CA-Certificate into your web browser: http:// | The Web service is also available as a https service. To make secure browsing as smooth as possible, please import this Root-CA-Certificate into your web browser: http:// | ||
- | ==== Anonymous | + | ==== Anonymous |
- | X2go's Git projects can be cloned to a local copy through anonymous Git with the following instruction set (in a Unix-like console session). | + | X2Go's Git projects can be cloned to a local copy through anonymous Git with the following instruction set (in a Unix-like console session). |
$ mkdir -p ~/x2go | $ mkdir -p ~/x2go | ||
Line 23: | Line 23: | ||
For < | For < | ||
- | ===== Contributing to X2go ===== | + | ===== Contributing to X2Go ===== |
Before you start contributing make sure git git knows who you are, as this is added to the patches. | Before you start contributing make sure git git knows who you are, as this is added to the patches. | ||
Line 39: | Line 39: | ||
- | Only project developers can access | + | Only project developers can access |
< | < | ||
Line 48: | Line 48: | ||
- | In the instruction set below, substitute < | + | In the instruction set below, substitute < |
$ cd ~/ | $ cd ~/ | ||
Line 60: | Line 60: | ||
===== Commits / Tags via e-Mail ===== | ===== Commits / Tags via e-Mail ===== | ||
- | Commits and tags in X2go Git are posted as e-Mails to two different mailing lists: | + | Commits and tags in X2Go Git are posted as e-Mails to two different mailing lists: |
* Git commits -> x2go-commits@lists.berlios.de (https:// | * Git commits -> x2go-commits@lists.berlios.de (https:// | ||
* Git tags -> x2go-announcement@lists.berlios.de (https:// | * Git tags -> x2go-announcement@lists.berlios.de (https:// | ||
- | These mailing lists can be subscribed to by anyone who is interested in X2go Git changes. However, beware that there might be phases you get flooded by mails, if you subscribe to any of these lists (esp. x2go-commits). Furthermore the lists are read-only. Postings to these lists will be dropped automatically by the mailing list service. | + | These mailing lists can be subscribed to by anyone who is interested in X2Go Git changes. However, beware that there might be phases you get flooded by mails, if you subscribe to any of these lists (esp. x2go-commits). Furthermore the lists are read-only. Postings to these lists will be dropped automatically by the mailing list service. |
Both mailing lists are also archived at Gmane: | Both mailing lists are also archived at Gmane: | ||
- | * [[http:// | + | * [[http:// |
* [[http:// | * [[http:// | ||
===== Snippets ==== | ===== Snippets ==== | ||
- | ==== Checkout all repos: ==== | + | ==== Checkout all repos ==== |
- | This is for bash | + | Just copy and paste into a bash terminal: |
< | < | ||
for REP in \ | for REP in \ | ||
buildscripts.git \ | buildscripts.git \ | ||
cups-x2go.git \ | cups-x2go.git \ | ||
+ | libjpeg-turbo.git \ | ||
+ | libpam-x2go.git \ | ||
+ | lightdm-remote-session-x2go.git \ | ||
ltsp-pyhocathinclient.git \ | ltsp-pyhocathinclient.git \ | ||
- | nxcomp.git \ | + | nx-libs.git \ |
- | nxcompext.git \ | + | |
- | nxcompshad.git \ | + | |
- | nxproxy.git \ | + | |
pinentry-x2go.git \ | pinentry-x2go.git \ | ||
pyhoca-cli.git \ | pyhoca-cli.git \ | ||
pyhoca-contrib.git \ | pyhoca-contrib.git \ | ||
pyhoca-gui.git \ | pyhoca-gui.git \ | ||
+ | python-paramiko.git \ | ||
python-x2go.git \ | python-x2go.git \ | ||
x2go-keyring.git \ | x2go-keyring.git \ | ||
- | x2goagent.git \ | + | x2goadmincenter.git \ |
+ | x2gobroker.git \ | ||
x2goclient-contrib.git \ | x2goclient-contrib.git \ | ||
x2goclient.git \ | x2goclient.git \ | ||
+ | x2goclient2.git \ | ||
+ | x2godesktop-applet.git \ | ||
x2godesktopsharing.git \ | x2godesktopsharing.git \ | ||
x2gognomebindings.git \ | x2gognomebindings.git \ | ||
+ | x2golxdebindings.git \ | ||
x2goplasmabindings.git \ | x2goplasmabindings.git \ | ||
x2goserver.git \ | x2goserver.git \ | ||
x2gothinclient.git \ | x2gothinclient.git \ | ||
x2gotrinitybindings.git \ | x2gotrinitybindings.git \ | ||
+ | z99.ubuntu/ | ||
+ | z99.ubuntu/ | ||
+ | z99.ubuntu/ | ||
+ | z99.ubuntu/ | ||
+ | z99.ubuntu/ | ||
+ | z99.ubuntu/ | ||
; do git clone git:// | ; do git clone git:// | ||
</ | </ | ||
+ | ==== Get Updates for all Repos ==== | ||
+ | Just copy and paste into a bash terminal: | ||
+ | |||
+ | < | ||
+ | for REP in \ | ||
+ | buildscripts \ | ||
+ | cups-x2go \ | ||
+ | libjpeg-turbo \ | ||
+ | libpam-x2go \ | ||
+ | lightdm-remote-session-x2go \ | ||
+ | ltsp-pyhocathinclient \ | ||
+ | nx-libs \ | ||
+ | pinentry-x2go \ | ||
+ | pyhoca-cli \ | ||
+ | pyhoca-contrib \ | ||
+ | pyhoca-gui \ | ||
+ | python-paramiko \ | ||
+ | python-x2go \ | ||
+ | x2go-keyring \ | ||
+ | x2goadmincenter \ | ||
+ | x2gobroker \ | ||
+ | x2goclient-contrib \ | ||
+ | x2goclient \ | ||
+ | x2goclient2 \ | ||
+ | x2godesktop-applet \ | ||
+ | x2godesktopsharing \ | ||
+ | x2gognomebindings \ | ||
+ | x2golxdebindings \ | ||
+ | x2goplasmabindings \ | ||
+ | x2goserver \ | ||
+ | x2gothinclient \ | ||
+ | x2gotrinitybindings \ | ||
+ | z99.ubuntu/ | ||
+ | z99.ubuntu/ | ||
+ | z99.ubuntu/ | ||
+ | z99.ubuntu/ | ||
+ | z99.ubuntu/ | ||
+ | z99.ubuntu/ | ||
+ | ; do cd $REP && git pull && cd .. ; done | ||
+ | </ | ||
===== Maintenance ===== | ===== Maintenance ===== | ||
- | This is only for admins having access to the x2go git server. | + | <note warning>This is only for admins having access to the x2go git server.</ |
==== Create new Git Project on X2go Git ==== | ==== Create new Git Project on X2go Git ==== | ||
Line 152: | Line 203: | ||
Unused feature, may come later... | Unused feature, may come later... | ||
+ | |||
+ | |||
+ | ===== Backyard ===== | ||
+ | |||
+ | < | ||
+ | |||
+ | ==== Reverting Merge Commits ==== | ||
+ | |||
+ | If you forget to run '' | ||
+ | |||
+ | There is nothing bad about merge commits apart from the fact that the X2go Git system won't allow them being pushed to the server :-/. | ||
+ | |||
+ | Thus, you probably want to avoid merge commits right from the beginning. However, from time to time it occurs that you crunch your Git log with a merge commit. This is how such a thing can happen: | ||
+ | |||
+ | * change a file | ||
+ | * commit it locally | ||
+ | * push it to X2go Git | ||
+ | * find that the push operation gets rejected :-( | ||
+ | * then run '' | ||
+ | * and then uuups... realize: the '' | ||
+ | |||
+ | One possible solution for this is // | ||
+ | |||
+ | < | ||
+ | # make a temporary backup copy of the master branch | ||
+ | $ git checkout -b master-bak-tmp | ||
+ | |||
+ | # go back to master branch | ||
+ | $ git checkout master | ||
+ | |||
+ | # and reset it to that refspec where local Git and server' | ||
+ | $ git reset --hard < | ||
+ | |||
+ | # then take a look at the log of your old local master branch | ||
+ | $ git log master-bak-tmp | ||
+ | |||
+ | # now cherry-pick your local changes individually from the master-bak-tmp branch (where refspec-1 ... refspec-n are the commit hashes of each commit): | ||
+ | $ git cherry-pick < | ||
+ | $ git cherry-pick < | ||
+ | ... | ||
+ | $ git cherry-pick < | ||
+ | |||
+ | # finally drop the tmp backup of old master | ||
+ | $ git branch -D master-bak-tmp | ||
+ | </ | ||
+ | |||
+ | ==== Pushing to X2go Git ==== | ||
+ | |||
+ | Whenever your local X2go Git project is in an acceptable state for the community, feel free to push the code to the X2go Git server: | ||
+ | |||
+ | < | ||
+ | $ git push | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | When working on master' | ||
+ | |||
+ | Keeping back code for too long can result in code conflicts (changes in the same code block of the same file by two different developers). | ||
+ | </ | ||
+ | |||
+ | The update scripts of X2go Git will shout warnings at you while pushing. These warnings relate to | ||
+ | |||
+ | * whitespaces found at the end of lines | ||
+ | * tabs found in the file (for Python: no tabs, for Bash, Perl, C++, etc. tabs are wanted, so you can ignore these if not coding Python) | ||
+ | * no \newline at end of file | ||
+ | |||
+ | You may consider silencing those warnings before committing the next time... | ||