From Fedora Project Wiki
Line 41: Line 41:
== ''BETA'' git ホスティングサポート ==
== ''BETA'' git ホスティングサポート ==


fedorapeople.org now has support for hosting git repositories including accessing them via the git:// protocol for anonymous downloads as well as providing gitweb.  ''This should be considered beta.''
現在 fedorapeople.org はホスティングのために gitweb で提供しているサービスと同様に匿名ダウンロードのために git:// 経由でのアクセスを含めて git リポジトリをサポートしています。 ''これは beta と見なされるべきです。''


Here is a quick rundown of how to get started using git on fedorapeople.org.  It assumes that you are already somewhat familiar with git.  You might want to take a look at the [[Git quick reference]].
次に fedorapeople.org で git を使い始める方法を簡単に紹介します。これはあなたが既に git に少し慣れていることを前提としています。慣れていないなら[[Git quick reference| Git クイックリファレンス]]で調べる方が良いかもしれません。


=== fedorapeople.org で <code>~/public_git</code> ディレクトリを作成する ===
=== fedorapeople.org で <code>~/public_git</code> ディレクトリを作成する ===


<pre>ssh your_fedora_username@fedorapeople.org "mkdir ~/public_git"</pre>
<pre>ssh your_fedora_username@fedorapeople.org "mkdir ~/public_git"</pre>


=== <code>~/public_git</code> で新たな git リポジトリを作成する ===
=== <code>~/public_git</code> で新たな git リポジトリを作成する ===


As an example, here is one method to create an empty repository ''on your local system'' and upload it:
サンプルとして ''ローカルシステム上'' に空のリポジトリを作成して、その空リポジトリをアップロードする方法を紹介します。


<pre>
<pre>
Line 63: Line 62:
</pre>
</pre>


This creates a ''bare'' repository (i.e. a repository that has no working directory).  It contains just the files that are part of the <code>.git</code> directory of a ''non-bare'' git repository (the kind most users are accustomed to seeing).
このサンプルは ''bare'' リポジトリ(例えば、ワーキングディレクトリを持たないリポジトリ)を作成します。それは (大半のユーザは見慣れている) ''non-bare'' リポジトリの <code>.git</code> ディレクトリの一部であるファイルのみを含みます。


{{admon/important|リポジトリ名は .git 終わらなければなりません| Gitweb は repos を表示しません。というのは <code>.git</code> で終わっていないからです。|}}


{{admon/important|Repository name must end with .git|Gitweb will not list repos that do not end in <code>.git</code>.|}}
{{admon/important|リポジトリアクセスと git-daemon-export-ok|<code>git-daemon-export-ok</code> ファイルなしでは git:// プロトコル経由でリポジトリへ匿名アクセスはできません。}}


{{admon/important|Repository access and git-daemon-export-ok|Without the <code>git-daemon-export-ok</code> file, your repository won't be available anonymously via the git:// protocol.}}
{{admon/caution|Non-bare リポジトリ| non-bare リポジトリは動作 ''すべき'' ではありますが、そのようなリポジトリに push することは一般的に推奨されていません。しかし、あなたが non-bare リポジトリをどうしても使用するなら、トップレベルの git ディレクトリに git-daemon-export-ok ファイルを置くべきです。例えば、<code>~/public_git/your_repo.git/git-daemon-export-ok</code> です。また <code>~/public_git/your_repo.git/.git/git-daemon-export-ok</code> では '''ありません'''。
 
{{admon/caution|Non-bare repositories|While non-bare repositories ''should'' work, it is [http://git.or.cz/gitwiki/GitFaq#git-push%20non-bare generally discouraged] to push to such repositories.  However, if you do use a non-bare repository, you should place the git-daemon-export-ok file in the top-level git dir, e.g. <code>~/public_git/your_repo.git/git-daemon-export-ok</code>, '''NOT''' <code>~/public_git/your_repo.git/.git/git-daemon-export-ok</code>}}


=== <code>~/public_git</code> への既存リポジトリへアップロードする ===
=== <code>~/public_git</code> への既存リポジトリへアップロードする ===


If you have an existing repository you want to use on fedorapeople, you can do so easily:
fedorapeople 上に使用したい既存のリポジトリを持っているなら、もっと簡単にできます。


<pre>
<pre>
Line 82: Line 80:
</pre>
</pre>


The caveats from the previous section apply here as well.
ここでも前のセクションで説明した警告が同様に適用されます。
 


=== あなたのリポジトリに対してプッシュする ===
=== リポジトリに対して push する ===


To push changes from a local repository:
ローカルリポジトリの変更を push するためには次のようにします。


<pre>
<pre>
Line 95: Line 92:
</pre>
</pre>


This creates a mirror of your local repository.  All of the branches and tags in the local repository will be pushed to the fedorapeople repository.
これはローカルリポジトリのミラーを作成します。ローカルリポジトリの全てのブランチとタグは fedorapeople リポジトリへ push されます。


If you only want to push selected branches, amend the <code>git push</code> example.  For example, to push only your local master branch:
選択したブランチへ push したいだけなら <code>git push</code> のサンプルを修正してください。例えば、ローカルのマスタブランチへのみ push するには次のようにします。


<pre>git push fedorapeople master</pre>
<pre>git push fedorapeople master</pre>


{{admon/tip|他のユーザにも push を許可する|他の fedorapeople.org ユーザに、拡張 ACL を使用して(詳細は <code>setfacl(1)</code> を参照)リポジトリへ push することを許可することができます。しかし、あなたのプロジェクトで作業するユーザがたくさんいるなら [http://fedorahosted.org Fedora Hosted] を使用することを強く推奨します。}}


{{admon/tip|Allowing others to push|You can allow other fedorapeople.org users to push to your repository using extended acls (see <code>setfacl(1)</code> for details).  However, if you have many others working on your project, using [http://fedorahosted.org Fedora Hosted] is strongly preferred.}}
=== リポジトリをクローンする ===
 


=== あなたのリポジトリをクローンする ===
リポジトリをクローンするために次のコマンドを使用してください。
 
To clone your repository, use a command similar to:


<pre>git clone git://fedorapeople.org/~your_fedora_username/repo.git</pre>
<pre>git clone git://fedorapeople.org/~your_fedora_username/repo.git</pre>


 
http:// プロトコル経由でプロジェクトをクローンすることもできます。この作業のためにリポジトリを更新するときはいつも <code>git-update-server-info</code> を実行するように調整しなければなりません。通常、これは post-update フックスクリプトで行われます。しかし、fedorapeople.org 上のユーザのホームディレクトリは、そのフックスクリプトの実行が行えない noexec オプションでマウントされています。その代わり、リポジトリのフックディレクトリにある <code>git-update-server-info</code> へのシンボリックリンクを作成します。
It is also possible to clone your project via the http:// protocol.  In order for this to work, you must arrange to have <code>git-update-server-info</code> run whenever you update your repository.  Typically, this is done with a post-update hook script.  However, the user home directories on fedorapeople.org are mounted with the noexec option, which prevents the script from running.  Instead, you may create a symbolic link to <code>git-update-server-info</code> in the hooks directory of your repository:


<pre>
<pre>
Line 120: Line 114:
</pre>
</pre>


 
また ~/public_html/git から ~/public_git へシンボリックリンクを作成することも必要です。
You also need to create a link from ~/public_html/git to ~/public_git:


<pre>
<pre>
Line 128: Line 121:
</pre>
</pre>


 
次のコマンドで http:// 経由でリポジトリをクローンすることもできます。
You can clone your repository over http:// with a command similar to:


<pre>git clone http://your_fedora_username.fedorapeople.org/git/repo.git/</pre>
<pre>git clone http://your_fedora_username.fedorapeople.org/git/repo.git/</pre>


{{admon/tip|git:// 対 http://|もしファイアウォールのために git:// プロトコルが使えないなら http:// プロトコルのみでクローンしてください。git:// の方が http:// プロトコルよりも速くて効率的です。}}


{{admon/tip|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.}}
=== gitweb 経由でプロジェクトをブラウズする ===
 
 
=== gitweb 経由であなたのプロジェクトをブラウズする ===
 
You can see your project listed in [http://fedorapeople.org/gitweb gitweb] once the project list updates.  This happens hourly.  ''Note that the gitweb URL may change.''


プロジェクトリストが更新されると [http://fedorapeople.org/gitweb gitweb] であなたのプロジェクトが表示されます。このリストは1時間毎に更新されます。 ''gitweb URL は変更されるかもしれないので注意してください。''


{{admon/tip|Repository description|You can set the description for the repository that is displayed in gitweb by editing the description file in your repository.}}
{{admon/tip|リポジトリの説明|リポジトリにある説明ファイルを編集することで gitweb に表示されるリポジトリの説明を設定することができます。}}


[[Category:Infrastructure]]
[[Category:Infrastructure]]

Revision as of 08:18, 6 August 2010

fedorapeople.org

本稿は Fedora の貢献者が世界中でファイル共有のためにアップロードできる fedorapeople.org で、あなたの個人スペースを作成して使用する方法の詳細を説明します。それは spec ファイル、SRPM、パッチ、個人リポジトリ等をアップロードするために最適です。

あなたの fedorapeople.org スペースへアクセスする

  1. Fedora アカウントを有効にする必要があります。
  2. 何かのグループを支援するために参加しなければなりません(CLA グループ以外)。
  3. ssh キーを生成する必要があります(ssh-keygen -t rsa)。
  4. Fedora アカウントへ ssh キーをアップロードします。アップロードするために このリンクを訪問して 'Public RSA SSH key フィールドにあなたのパブリックキーを選択してください。通常はホームディレクトリの .ssh/id_rsa.pub にあります。アップロード後 ssh キーが有効になるのに1時間かかります。
  5. 接続するために、Fedora アカウントにアップロードした ssh キーを使用してください。
ssh -i ~/.ssh/id_rsa <your_fedora_id>@fedorapeople.org

一般的な回答

  • 各 Fedora 貢献者は quota 制御で 150 MB のスペースを持てます。
  • ウェブ上に公開されたスペースを作成するために public_html ディレクトリを作成してください。
  • scp, sftp 又は rsync を使用してファイルをアップロードしてください。
Idea.png
Nautilus の使用
GNOME を使用しているなら fedorapeople.org スペースへ接続する簡単な方法について このページを訪問してください。
Idea.png
Dolphin 又は Konqueror の使用
KDE を使用しているなら fedorapeople.org スペースへ接続する簡単な方法として、ファイルマネージャに sftp://your_username@fedorapeople.org を入力してください。

コマンドラインからファイルをコピーするために scp コマンドを使用することができます。

scp /path/to/file your_fedora_username@fedorapeople.org:/home/fedora/your_fedora_username/public_html
  • 拡張 ACL を使用して read/write/etc のアクセス権をファイルへ与えてください。ディレクトリ/ファイルへアクセス権を追加するために setfacl と getfacl の man ページを確認してください。このサンプルは jkeating というユーザに読み込みと書き込みのアクセス権を file へ与えます。
setfacl -m u:jkeating:rw file

BETA git ホスティングサポート

現在 fedorapeople.org はホスティングのために gitweb で提供しているサービスと同様に匿名ダウンロードのために git:// 経由でのアクセスを含めて git リポジトリをサポートしています。 これは beta と見なされるべきです。

次に fedorapeople.org で git を使い始める方法を簡単に紹介します。これはあなたが既に git に少し慣れていることを前提としています。慣れていないなら Git クイックリファレンスで調べる方が良いかもしれません。

fedorapeople.org で ~/public_git ディレクトリを作成する

ssh your_fedora_username@fedorapeople.org "mkdir ~/public_git"

~/public_git で新たな git リポジトリを作成する

サンプルとして ローカルシステム上 に空のリポジトリを作成して、その空リポジトリをアップロードする方法を紹介します。

mkdir repo.git
cd repo.git
git --bare init
touch git-daemon-export-ok
cd ..
scp -r repo.git/ your_fedora_username@fedorapeople.org:public_git/

このサンプルは bare リポジトリ(例えば、ワーキングディレクトリを持たないリポジトリ)を作成します。それは (大半のユーザは見慣れている) non-bare リポジトリの .git ディレクトリの一部であるファイルのみを含みます。

Important.png
リポジトリ名は .git 終わらなければなりません
Gitweb は repos を表示しません。というのは .git で終わっていないからです。
Important.png
リポジトリアクセスと git-daemon-export-ok
git-daemon-export-ok ファイルなしでは git:// プロトコル経由でリポジトリへ匿名アクセスはできません。

{{admon/caution|Non-bare リポジトリ| non-bare リポジトリは動作 すべき ではありますが、そのようなリポジトリに push することは一般的に推奨されていません。しかし、あなたが non-bare リポジトリをどうしても使用するなら、トップレベルの git ディレクトリに git-daemon-export-ok ファイルを置くべきです。例えば、~/public_git/your_repo.git/git-daemon-export-ok です。また ~/public_git/your_repo.git/.git/git-daemon-export-ok では ありません

~/public_git への既存リポジトリへアップロードする

fedorapeople 上に使用したい既存のリポジトリを持っているなら、もっと簡単にできます。

git clone --bare /path/to/local/repo repo.git
touch repo.git/git-daemon-export-ok
scp -r repo.git/ your_fedora_username@fedorapeople.org:public_git/

ここでも前のセクションで説明した警告が同様に適用されます。

リポジトリに対して push する

ローカルリポジトリの変更を push するためには次のようにします。

cd /path/to/local/repo
git remote add fedorapeople your_fedora_username@fedorapeople.org:public_git/repo.git
git push --mirror fedorapeople

これはローカルリポジトリのミラーを作成します。ローカルリポジトリの全てのブランチとタグは fedorapeople リポジトリへ push されます。

選択したブランチへ push したいだけなら git push のサンプルを修正してください。例えば、ローカルのマスタブランチへのみ push するには次のようにします。

git push fedorapeople master
Idea.png
他のユーザにも push を許可する
他の fedorapeople.org ユーザに、拡張 ACL を使用して(詳細は setfacl(1) を参照)リポジトリへ push することを許可することができます。しかし、あなたのプロジェクトで作業するユーザがたくさんいるなら Fedora Hosted を使用することを強く推奨します。

リポジトリをクローンする

リポジトリをクローンするために次のコマンドを使用してください。

git clone git://fedorapeople.org/~your_fedora_username/repo.git

http:// プロトコル経由でプロジェクトをクローンすることもできます。この作業のためにリポジトリを更新するときはいつも git-update-server-info を実行するように調整しなければなりません。通常、これは post-update フックスクリプトで行われます。しかし、fedorapeople.org 上のユーザのホームディレクトリは、そのフックスクリプトの実行が行えない noexec オプションでマウントされています。その代わり、リポジトリのフックディレクトリにある git-update-server-info へのシンボリックリンクを作成します。

ssh ~your_fedora_username@fedorapeople.org
cd ~/public_git/repo.git/hooks
ln -svbf /usr/bin/git-update-server-info post-update

また ~/public_html/git から ~/public_git へシンボリックリンクを作成することも必要です。

cd ~/public_html
ln -svbf ../public_git git

次のコマンドで http:// 経由でリポジトリをクローンすることもできます。

git clone http://your_fedora_username.fedorapeople.org/git/repo.git/
Idea.png
git:// 対 http://
もしファイアウォールのために git:// プロトコルが使えないなら http:// プロトコルのみでクローンしてください。git:// の方が http:// プロトコルよりも速くて効率的です。

gitweb 経由でプロジェクトをブラウズする

プロジェクトリストが更新されると gitweb であなたのプロジェクトが表示されます。このリストは1時間毎に更新されます。 gitweb URL は変更されるかもしれないので注意してください。

Idea.png
リポジトリの説明
リポジトリにある説明ファイルを編集することで gitweb に表示されるリポジトリの説明を設定することができます。