X-Git-Url: https://git.tld-linux.org/?a=blobdiff_plain;f=git-howto.txt;h=e238ee45194e097de3580c30db5726bacca64f5f;hb=71b9a07285aec50f040fad3a2f42f3adab3bf058;hp=d397a69db6102a1510afe9d4c37ed50a7d02468f;hpb=acba5fa7064cec11a6df344f7dc757acf973a7a8;p=TLD.git diff --git a/git-howto.txt b/git-howto.txt index d397a69..e238ee4 100644 --- a/git-howto.txt +++ b/git-howto.txt @@ -1,18 +1,90 @@ -This little howto is about Git repository used by Titanium Linux. -You will find here examples of most often used git commands. +This little howto is about the Git repository used by Titanium Linux. +You will find here examples of the most common git commands. Ready? Let's start (you must have RW access to TLD git repositories). +Table Of Content: +1. How do I prepare git to work? + a) Install git-core + b) Configure git globally + c) Configure ssh environment to work with git +2. How do I commit a new .spec file or package to the repository? + a) Clone an empty repository (note: it will be automatically created on server + side.) + b) Set your local Email address + c) Put your files into the repository and add them locally + d) Push your changes to the server +3. Crap, I've checked out a repository, forgot to change the local e-mail + address and commited my changes. Now I can't push them to the server. + What can I do? +4. My new repository didn't show up on the web. +5. I've deleted some files in my cloned repo. I'm doing git pull, but they + do not reappear. +6. How can I add a description to a new repository? +7. SPECS: What is obsolete now that we have GIT? + +============================================================================== +1. How do I prepare git to work? + +a) Install git-core + +Just install git-core package via poldek: + +poldek +install git-core + +b) Configure git globally + +To be able to work with git on TLD repository you will need to set up few +things in git config: + +- your e-mail address which consists of your git login and tld-linux.org domain +- your username, which should consist of your name and surename + +To do so, type: + +git config --global user.email "your_git_login@tld-linux.org" +git config --global user.name "John Doe" + +Replace "your_git_login" and "John Doe" accordingly. + +Above commands will create ~/.gitconfig file with proper settings. + +c) Configure ssh environment to work with git + +If you plan to use non default ssh key pair, it's better to put some info about +it to your default .ssh/config file. Edit your local Host alias and key path in +sample below: + +Host git.tld-linux.org + User git + Hostname git.tld-linux.org + PreferredAuthentications publickey + IdentityFile /home/users/YOURUSER/.ssh/YOUR_KEY_FILE + +To test if ssh works, do the: + +ssh -T git.tld-linux.org + +you should get similar answer: + +hello USER, the gitolite version here is x.y.z +the gitolite config gives you the following access: + R W TLD + (...) + ============================================================================== -1. How do I commit a new .spec file or package to the repository? +2. How do I commit a new .spec file or package to the repository? a) Clone an empty repository (note: it will be automatically created on server - side. + side.) git clone git@git.tld-linux.org:packages/your_new_package b) Set your local Email address +This step is optional if your git is configured globally (see point 1 of this HOWTO). + cd your_new_package git config --local user.email your_git_login@tld-linux.org @@ -43,7 +115,7 @@ repository before pushing all changes to server. You don't need to push each time you commit, but feel free to do so if you want :-) ============================================================================== -2. Crap, I've checked out a repository, forgot to change the local e-mail +3. Crap, I've checked out a repository, forgot to change the local e-mail address and commited my changes. Now I can't push them to the server. What can I do? @@ -64,16 +136,16 @@ b) The second way is to remove locally your repository and re-clone it. Then put back your changes to it, commit and push. ============================================================================== -3. My new repository didn't show up on the web. +4. My new repository didn't show up on the web. -Repository "packages" is checked every 15 minutes for new subrepositories by -cron job. If found, they're added to the web. If for some reason cron job will -fail ask one of git admins to run and/or fix this script: +Repository "packages" are checked every 15 minutes for new subrepositories by +a cron job. If found, they're added to the web. If for some reason cron job +fails, ask one of the git admins to run and/or fix this script: ~git/scripts/packages_enable_gitweb.sh -Top level repositores must be manually added to gitweb. Ask one of gitadmins -to do following: +Top level repositores have to be added manually to gitweb. Ask one of the git +admins to do the following: ssh your_login@kraz.tld-linux.org sudo su - git @@ -81,10 +153,10 @@ cd ~/repositories/repo_name.git touch gitweb-export-ok ============================================================================== -4. I've deleted some files in my cloned repo. I'm doing git pull, but they +5. I've deleted some files in my cloned repo. I'm doing git pull, but they do not reappear. -Please do following in your cloned repo to restore deleted files: +Please do the following in your cloned repo to restore deleted files: git checkout some.file @@ -93,9 +165,35 @@ To restore all your deleted files do: git ls-files -d | xargs git checkout -- ============================================================================== -5. How can I add description for new repository? +6. How can I add a description to a new repository? -Do following: +Do the following: -ssh git@git.tld-linux.org setdesc packages/some_package "Some description" +echo "Some description" |ssh git@git.tld-linux.org setdesc packages/some_package +Ex. + +$ echo "kernel-desktop, a linux version optimised for the desktop" |ssh git@git.tld-linux.org setdesc packages/kernel-desktop +New description is: +kernel-desktop, a linux version optimised for the desktop +$ + +============================================================================== +7. SPECS: What is obsolete now that we have GIT? + +Now that we use GIT for our own .spec files and projects, there're some things +we do no longer need. + +a) Remove "# $Revision:" lines on top of a .spec file +b) Remove the whole changelog from the bottom of a .spec file +c) Remove "%define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`)" +d) Remove feedback stuff and all PLD related links +e) Remove all the conditions for pld_release (%if "%{pld_release}" == "ti" ect.) + +Why all that removing? +There're a couple of reasons why we don't want to keep these things in our +specs. +Most of them are strictly CVS related, like the Revision stuff. We don't need +to artificially increase the size of our .spec files by having the whole +changelog included in them. Use "git log", with all its sophisticated options, +to visualise changes, make statistics etc.