Purpose#
A “READ-ONLY” copy of the official “pki.git” repo can be obtained using the following command:
git clone git://git.fedorahosted.org/git/pki.git
However, this official “pki.git” repo will not contain any “patches” that may currently exist on a developer’s local copy of this “pki.git” repo.
Therefore, to promote the open development of Dogtag and encourage better developer collaboration and transparency, developers are urged to create “shared” git repositories of their local development “pki.git” repos hosted off of their “fedorapeople.org” account.
The following instructions for accomplishing this are based upon http://fedoraproject.org/wiki/Infrastructure/fedorapeople.org#BETA_git_hosting_support.
**IMPORTANT: ** |
ALL of the steps described in this document should be redone by each developer if their “shared” repository was created prior to the closing of https://fe dorahosted.org/fedora-infrastructure/ticket/3123 which addressed the removal of certain official “pki.git” branches/tags! |
DOGTAG DEVELOPERS: Setting Up a Shared “pki.git” Development Repository on “fedorapeople.org”#
Create a “~/public_git directory” on “fedorapeople.org”#
After obtaining an account on “fedorapeople.org”, create a “~/public_git” directory on “fedorapeople.org” by executing the following command from your local machine:
\ ``@fedorapeople.org "mkdir ~/public_git; /sbin/restorecon -Rv ~/public_git"
\ ``/public_git context unconfined_u:object_r:user_home_t:s0->unconfined_u:object_r:git_session_content_t:s0
Publishing your local “pki.git” development repository to “~/public_git” on “fedorapeople.org”#
From your local machine, create a temporary directory:
From your local machine, create a “pki.git” repo from your existing local “pki.git” repo:
From your local machine, copy the entire contents of this “pki.git” repo into “~/public_git” on “fedorapeople.org”:
\ ``@fedorapeople.org:public_git/
From your local machine, clean up your staging directory:
Pushing content from your local “pki.git” development repository to the shared “pki.git” repository inside “~/public_git” on “fedorapeople.org”#
From your local machine, change directory into your existing local “pki.git” repo:
`` % cd /path/to/local/pki_repo``
To create a mirror of your local “pki.git” repository, execute the following commands to push all of the branches and tags in the local repository to the “~/public_git/pki.git” repository on “fedorapeople.org”:
\ ``@fedorapeople.org:public_git/pki.git
Enabling a Dogtag developer’s shared “~/public_git/pki.git” repository on “fedorapeople.org” to be accessed via the “http” protocol#
To allow your “pki.git” repo to be cloned via the “http://” protocol, you must arrange to have git-update-server-info run whenever you update your local “pki.git” development repository. Typically, this is done with a post-update hook script. However, since the user home directories on “fedorapeople.org” are mounted with the “noexec” option which prevents the script from running, you will need to create a symbolic link to git-update-server-info in the hooks directory of your repository:
\ ``@fedorapeople.org
You will also need to create a link from “~/public_html/git” to “~/public_git”:
Enabling access to a Dogtag developer’s shared “pki.git” development repository on “fedorapeople.org” via “gitweb”#
Update the description in your shared “pki.git” development repository on “fedorapeople.org” by executing the following commands:
\ ``@fedorapeople.org
\ ``'s PKI Development Repository".
By default, the URLs gitweb shows for your repository are incorrect (since the introduction of the service in mid-2008, last checked 2010-08-11). You can work around that by adding a file cloneurl to your repository which contains working URLs.
Default broken URLs:
\ ```git://fedorapeople.org/home/fedora/your_fedora_username/public_git/pki.git
<git://fedorapeople.org/home/fedora/your_fedora_username/public_git/pki.git>`__\ ```ssh://fedorapeople.org/home/fedora/your_fedora_username/public_git/pki.git
<ssh://fedorapeople.org/home/fedora/your_fedora_username/public_git/pki.git>`__Write these URLs into thecloneurlfile to work around that:
\ ``@fedorapeople.org
\ ```git://fedorapeople.org/~your_fedora_username/pki.git
<git://fedorapeople.org/~your_fedora_username/pki.git>`__\ ```ssh://fedorapeople.org/~your_fedora_username/public_git/pki.git
<ssh://fedorapeople.org/~your_fedora_username/public_git/pki.git>`__Granting additional access to a Dogtag developer’s shared “pki.git” development repository on “fedorapeople.org” (AS DESIRED)#
To give unfettered access to other Dogtag developers, apply ACLs to your shared “pki.git” development repository:
\ ``@fedorapeople.org
\ ``:rwX pki.git
\ ``:rwX
DOGTAG USERS: Obtaining and Using a Shared “pki.git” Development Repository on “fedorapeople.org”#
**IMPORTANT: ** |
git:// versus http://
Only clone via http:// if you
are behind a firewall that
prevents git:// from working.
The git:// protocol is faster
and more efficient than the
http:// protocol for git usage.
|
Accessing a Dogtag developer’s shared “pki.git” development repository on “fedorapeople.org” via “gitweb”#
You can see A Dogtag developer’s shared “pki.git” repository listed in gitweb once the project list updates. This happens hourly.
For example:
**Note: ** |
The gitweb URL may change. |
Obtaining a clone of a Dogtag developer’s “~/public_git/pki.git” repository on “fedorapeople.org” using the “git” protocol (PREFERRED)#
On your local machine, create a directory:
To obtain a clone of this user’s “pki.git” repository, use the following command:
\ ```git://fedorapeople.org/
<git://fedorapeople.org/>`__~
/pki.git pki
Obtaining a clone of a Dogtag developer’s “~/public_git/pki.git” repository on “fedorapeople.org” using the “http” protocol (ALLOWED)#
On your local machine, create a directory:
To obtain a clone of this user’s “pki.git” repository, use the following command:
`` % git clone \ ```http://fedorapeople.org/home/fedora/
<http://fedorapeople.org/home/fedora/>`__/public_git/pki.git pki.git
Differences between an official “pki.git” repository and a Dogtag developer’s shared “pki.git” development repository that has been checked out from “fedorapeople.org”#
Official “pki.git” repository
Remote and local branches (showing Python_Installer as a local development branch of this Dogtag developer):
Remote branches:
Dogtag developers shared “pki.git” development repository checked out from “fedorapeople.org”
Remote and local branches:
Remote branches:
Publishing changes from a local Dogtag developer’s “pki.git” repository branch to the Dogtag developer’s shared “pki.git” development repository on “fedorapeople.org”#
Remote branches on fedorapeople:
Local branches in developer’s local repository:
\ ``@fedorapeople.org:public_git/pki.git