Development using git:Cgit: Difference between revisions
(Created page with "Developers with SSH access can publish their repositories on cgit at [http://git.alpinelinux.org/ git.alpinelinux.org]. == Create a repository == Create a directory on ...") |
(ignore git clone link) |
||
(20 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
Developers with SSH access can publish their repositories on [[Cgit|cgit]] at [ | {{Merge|Development using git:Developer repositories|It's not easy at a glance to sort out what's (i) general info about using cgit (for any project), and what's (ii) specific to coordinating with the Alpine developer repositories. Might we either merge these pages, or segregate the information into (i) and (ii)?}} | ||
{{Merge|Git|All basic {{Pkg|cgit}} info should be pulled and merged. All Alpine development info should be moved elsewhere}} | |||
Developers with SSH access can publish their repositories on [[Cgit|cgit]] at [https://git.alpinelinux.org/ git.alpinelinux.org]. | |||
== Create a repository == | == Create a repository == | ||
Create a directory on your local computer or somewhere you have access. | Create a directory on your local computer or somewhere you have access. If you already have an existing git repository, skip this section. | ||
{{cmd|mkdir | {{cmd|mkdir myrepo | ||
cd | cd myrepo}} | ||
init git and create a first commit | init git and create a first commit | ||
{{cmd|echo "testing" > test.txt | {{cmd|echo "testing" > test.txt | ||
Line 14: | Line 19: | ||
== 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 | git clone --bare myrepo myrepo.git}} | ||
Set the description | Set the description | ||
{{cmd|echo "My git/cgit test" > | {{cmd|echo "My git/cgit test repo" > myrepo.git/description}} | ||
Set the section and your name for cgit. | Set the section and your name for cgit. | ||
{{cmd|<nowiki>cat <<EOF >> | {{cmd|<nowiki>cat <<EOF >> myrepo.git/cgitrc | ||
> section=Developer Your_alias | > section=Developer Your_alias | ||
> owner=Your_full_name | > owner=Your_full_name | ||
> EOF</nowiki>}} | > EOF</nowiki>}} | ||
{{Note|The 'description' file and 'cgitrc' file are needed to make cgit publish information about your repo.}} | |||
{{ | |||
== | == Upload to git.alpinelinux.org == | ||
Copy the content to your the ~/cgit directory on [https://git.alpinelinux.org/ git.alpinelinux.org]. | |||
{{cmd|scp -r myrepo.git git.alpinelinux.org:cgit/}} | |||
{{cmd|git | == Clean up == | ||
We no longer need the local aports.git directory. | |||
{{cmd|rm -rf myrepo.git}} | |||
== Last step == | |||
Now ping <tt>ncopa</tt> or somebody else on IRC in [[IRC|#alpine-devel]] with the corresponding permissions to create symlinks on [https://git.alpinelinux.org/ git.alpinelinux.org] and your repository will show up. Once the symlink is created all further repositories will be published on [https://git.alpinelinux.org/ git.alpinelinux.org]. | |||
== Add your personal repository == | |||
So far git does not know anything about about your repositories. | |||
{{Cmd|cd myrepo | |||
git remote add origin <nowiki>ssh://git.alpinelinux.org/gitroot/username/myrepo.git</nowiki>}} | |||
== 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 | |||
{{Cmd|git remote add upstream <nowiki>git://git.alpinelinux.org/aports</nowiki>}} | |||
Then, to synchronize your local copy with upstream then push your changes (might need to fix merge conflicts if/when they happen): | |||
{{cmd|git pull upstream master | |||
git push}} | |||
== | == The quick way == | ||
{{Cmd|<nowiki>cd .. | {{Cmd|<nowiki>cd .. | ||
git clone --bare acf-mystuff acf-mystuff.git | git clone --bare acf-mystuff acf-mystuff.git | ||
Line 67: | Line 73: | ||
scp -r acf-mystuff.git user@dev.alpinelinux.org:cgit/</nowiki>}} | scp -r acf-mystuff.git user@dev.alpinelinux.org:cgit/</nowiki>}} | ||
[[Category:Development]] | |||
[[Category:Git]] | |||
Latest revision as of 10:45, 7 August 2023
This material is proposed for merging ... It should be merged with Development using git:Developer repositories. It's not easy at a glance to sort out what's (i) general info about using cgit (for any project), and what's (ii) specific to coordinating with the Alpine developer repositories. Might we either merge these pages, or segregate the information into (i) and (ii)? (Discuss) |
This material is proposed for merging ... It should be merged with Git. All basic cgit info should be pulled and merged. All Alpine development info should be moved elsewhere (Discuss) |
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. If you already have an existing git repository, skip this section.
mkdir myrepo cd myrepo
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 myrepo myrepo.git
Set the description
echo "My git/cgit test repo" > myrepo.git/description
Set the section and your name for cgit.
cat <<EOF >> myrepo.git/cgitrc > section=Developer Your_alias > owner=Your_full_name > EOF
Upload to git.alpinelinux.org
Copy the content to your the ~/cgit directory on git.alpinelinux.org.
scp -r myrepo.git git.alpinelinux.org:cgit/
Clean up
We no longer need the local aports.git directory.
rm -rf myrepo.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.
Add your personal repository
So far git does not know anything about about your repositories.
cd myrepo git remote add origin ssh://git.alpinelinux.org/gitroot/username/myrepo.git
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
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/