質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

2回答

592閲覧

git-http-backendで使用するGIT_PROJECT_ROOTにリポジトリを内包するルートフォルダを指定したい

ahakat

総合スコア9

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

0クリップ

投稿2021/11/15 05:46

自社サーバにてApacheでgitリポジトリを公開しHTTPアクセスできる環境を構築しようとしています。

やりたいこと

以下のような階層構造を持つリモートリポジトリ群をApacheで公開しHTTPでpush、pullを行いたいです。

| ■E:
| └■ projects
|  ├■ C#
|  │├■ Hello.git →リモートリポジトリ1
|  │└■ Sample.git →リモートリポジトリ2
|  └■ Java
|  └■ Hoge.git →リモートリポジトリ3

▼cloneコマンドイメージ
git clone http://hostname/C#/Hello.git

困っていること

Apacheのhttpd.confへ追記を行い、git-http-backendをスクリプトとして設定しているのですが
httpd.conf上のGIT_PROJECT_ROOTにおいて指定できるのがリポジトリのルートパスであるため
例えば上図でいうとGIT_PROJECT_ROOTに対し**"E:/projects"**といったリポジトリでないディレクトリを指定できず困っています。
リポジトリ数が多いため、ルート階層へフラットにリポジトリを配置せずフォルダを分けて管理したいと考えており
良い運用方法があればご教示いただけると幸いでございます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

サーバの設定以前に、

git clone http://hostname/C#/Hello.git

#」はURLエンコードしなければいけませんが、その点は大丈夫ですか。

git clone http://hostname/C%23/Hello.git

例えば上図でいうとGIT_PROJECT_ROOTに対し"E:/projects"といったリポジトリでないディレクトリを指定できず困っています。

自分は、「GIT_PROJECT_ROOT」にレポジトリでないディレクトリを指定していますが、問題なく動作しています。

試しに、上記の設定で「/var/html/git/C#/Hello.git」というディレクトリを作って、上記のコマンドを他のPCで実行したら、問題なくcloseできました。
まぁFreeBSDなのでOSが違いますが、パスの指定のしかたで問題になることはあるかもしれませんが、「Windowsだからレポジトリでないディレクトリを指定できない」ということはないと思いますけどねぇ…。

投稿2021/11/15 11:41

katsuko

総合スコア3491

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ahakat

2021/11/16 00:22

大変ありがとうございます。 "#"を含むパスがURLエンコードが必要と知らず、GIT_PROJECT_ROOTにgitリポジトリしか指定できないと思い込んでおりました。 環境はWindowsServerでしたが、cloneコマンドにおいてエスケープが必要な文字を含むパスを指定した場合gitリポジトリがnot foundであるとエラーを返却される挙動でした。 エスケープが不要なパスとすることで本件を回避できました。 この度は大変ありがとうございました。
guest

0

"#"を含むパスがURLエンコードが必要と知らず、GIT_PROJECT_ROOTにgitリポジトリしか指定できないと思い込んでおりました。

環境はWindowsServerでしたが、cloneコマンドにおいてエスケープが必要な文字を含むパスを指定した場合gitリポジトリがnot foundであるとエラーを返却される挙動でした。
エスケープが不要なパスとすることで本件を回避できました。
この度は大変ありがとうございました。

投稿2021/11/16 00:23

ahakat

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問