Development using git:Cgit: Difference between revisions
No edit summary |
No edit summary |
||
Line 14: | Line 14: | ||
== Create a bare repo == | == Create a bare repo == | ||
Clone it to a bare repo | Clone it to a bare repo | ||
{{cmd|cd .. | {{cmd|cd .. | ||
git clone --bare mytest mytest.git}} | git clone --bare mytest mytest.git}} | ||
Line 20: | Line 21: | ||
{{cmd|echo "My git/cgit test" > mytest.git/description}} | {{cmd|echo "My git/cgit test" > mytest.git/description}} | ||
Set the section and your name for cgit. | Set the section and your name for cgit. | ||
Line 30: | Line 30: | ||
{{Note|The 'description' file and 'cgitrc' file are needed to make cgit publish information about your repo.}} | {{Note|The 'description' file and 'cgitrc' file are needed to make cgit publish information about your repo.}} | ||
Copy the content to the directory ~/cgit on [http://git.alpinelinux.org/ git.alpinelinux.org] | == Upload to git.alpinelinux.org == | ||
Copy the content to your the directory ~/cgit on [http://git.alpinelinux.org/ git.alpinelinux.org]. | |||
{{cmd|scp -r mytest.git git.alpinelinux.org:cgit/}} | {{cmd|scp -r mytest.git git.alpinelinux.org:cgit/}} | ||
Revision as of 12:46, 5 July 2011
Developers with SSH access can publish their repositories on cgit at git.alpinelinux.org.
Create a repository
Create a directory on your local computer or somewhere you have access.
mkdir mytest cd mytest
init git and create a first commit
echo "testing" > test.txt git init git add . git commit -m 'initial commit'
Create a bare repo
Clone it to a bare repo
cd .. git clone --bare mytest mytest.git
Set the description
echo "My git/cgit test" > mytest.git/description
Set the section and your name for cgit.
cat <<EOF >> mytest.git/cgitrc > section=Developer Your_alias > owner=Your_full_name > EOF
Upload to git.alpinelinux.org
Copy the content to your the directory ~/cgit on git.alpinelinux.org.
scp -r mytest.git git.alpinelinux.org:cgit/
Clean up
We no longer need the local bare repository.
rm -rf mytest.git
Last step
Now ping ncopa or somebody else on IRC in #alpine-devel with the corresponding permissions to create symlinks on git.alpinelinux.org and your repository will show up. Once the symlink is created all further repositories will be published on git.alpinelinux.org.
next part needs some love too
Add upstream source to merge with
If the project you uploaded is a clone of an existing repository (aports for example), add the original source as a git remote repository ("upstream" can be whatever name you want to assign to the remote repository):
git remote add upstream git://git.alpinelinux.org/aports
Then, to synchronize your local copy with upstream then push your changes (might need to fix merge conflicts if/when they happen):
git pull upstream master git push
Git Push (Distributed Workflows)
If working with Distributed Workflows you would 'pull' from public repo, 'push' to another publically accessable repo (where you have write access), main developer (who has write access to public repo) 'pulls' you changes from your pub.accessed.repo into the public repo.
To make it easier for you to work, you can configure 'git push' to push your work to your publically accessable repo ('git pull' would still pull from same repo as you cloned from).
cd /your/private/repo/where/you/work/reponame git config remote.origin.pushurl "ssh://user@dev.alpinelinux/home/user/cgit/reponame.git"
Now 'git pull' pulls the public repo, and 'git push' pushes to your public repo.
The quick way
cd .. git clone --bare acf-mystuff acf-mystuff.git echo "My acf-mystuff repo" > acf-mystuff.git/description echo "section=Developer user" > acf-mystuff.git/cgitrc scp -r acf-mystuff.git user@dev.alpinelinux.org:cgit/