2012-03-23 15 views
0

私はDVCSに新しいですが、私はそれがどのように動作するかを理解するために、最終的に管理している、私が最初に私のワークフローでは、上記の手順は、論理的なものであるかどうかを確認したいと思います:リモートサーバーでhg cloneの後にアクセス許可を設定するにはどうすればよいですか?

手順:ローカルで実行します。hg init、追加ファイルを変更する場合、hg add .,hg commithg push path_to_my_ repo、リモートサーバーに進み、hg inithg clone path_to_my_ repo、およびhg updateを実行します。

(ディレクトリにレポコンテンツの抽出物としてdev.domain.comで直接クローン、?!このOKです)

問題:私は、リモートサーバー上の私のファイルを得るか、彼らはすべてありますが、 私のFTP/SFTPクライアントで編集できませんか?私はこれらの追加されたフォルダ内の何かを編集することはできませんので、許可の問題でなければなりません。

私が試してみましたLSは-al PROJ1 /:

drwxr-xr-x 3 root root 4096 Mar 23 15:26 ./ 
drwxr-x--- 18 moove nobody 4096 Mar 23 15:26 ../ 
drwxr-xr-x 3 root root 4096 Mar 23 15:26 .hg/ 
-rw-r--r-- 1 root root 40272 Mar 23 15:26 wp-app.php 

そしてchownをルート:ルートPROJ1が、これは問題を解決できませんでした。

お願いします。

+0

あなたはrootとしてログインしていますか?現在のフォルダ内のすべてのファイルは、ルートによって所有されています。 –

+0

Erm、no。私はcPanelをインストールしていて、cPanelアカウントを作成せずにFTPアカウント(pureftpd)を作成する方法を見つけることができませんでした。アカ​​ウント所有者はちょうど自分のディレクトリにアクセスできます。 rootパスワードでのftp-ingは機能しません。あなたの質問は私に何が間違っているのかを知らせるようにしたので、その特定のフォルダのグループ/ユーザをどうやって変更できますか? – Chris

+0

http:またはssh:URLを使用して「リモートサーバー」に移動しているかどうかをお知らせください。それはすべての違いを作ります。 –

答えて

1

ワークフローの例が正しくありません。
"リモートサーバー"とは、誰もがプッシュ/プルできる正しいリポジトリ用の中央サーバーを意味します。

yesの場合、この部分は必要ではない場合:

は、リモートサーバー上で行くとやるhg inithg clone path_to_my_ repoとあなたが上の中央リポジトリを設定することになっているhg update

(おそらくそれを作成するためにhg initを含んでいますが、それ以外のものは含まれていません)。
- >誰もがそれに追いついて引っ張ることができます。それだけです。 その後、サーバで何もする必要はありません。(試したように、FTP経由でファイルを編集するなど)、一度押すたびにhg updateを送信しないでください。
サーバも権限(必ずしもファイルのパーミッションを含ん設定

hg updateはあなただけプッシュし、そのリポジトリからプルしたい場合は、必要のないサーバー上のリポジトリでの作業ディレクトリを作成します)サーバー上の - 特定のリポジトリに対するプッシュ/プル権限を持つユーザー)。

Mercurialサーバーの設定方法については、Mercurial wikiのPublishing Repositoriesを参照してください。


EDIT -
は(Unix上ではおろか、私は
Mercurialの日常を使用が、私はMercurialのサーバーを設定する方法がわからない私はこれを直接あなたを助けることはできません) :

正直なところ、あなたのワークフローを理解しているかどうかはわかりません。
「sshサーバー、複製を作成したクローンを作成する」のはなぜですか?私は同じサーバー上で再度セントラルレポジトリを複製する理由を理解していません。

通常の基本的なワークフローは次のとおりです。
ローカルで作業し、コードを書いてローカルのリポジトリにコミットします。
Github/Bitbucketや自分のサーバー上のプロジェクトのための中央リポジトリがあります。これは "中央サーバー"と言いました。コミットした後、それを押すと、変更が中央リポジトリに保存されます。
あなたの同僚は同じことをしているので、中央のリポジトリから再度引き出して、同僚の変更を取得することもできます(に変更することもできます)。

は、その後、あなたはこれを言った:

我々は、最初に(初回のクローンを作成する)離れる前に毎日をサブドメイン(DEV)上のファイルを引っ張ってくると、プロジェクトが終了したとき、私たちは同じことを行いますライブサーバー上のリポジトリを複製してサーバー上のもの

これはプロジェクトを正しく展開するためのものですか?あなたの質問を初めて読んだときに誤解したと思います。
"dev"サブドメインへのクローン作成は、プッシュ/プルするリポジトリが1つだけではなく、テスト環境を展開するためのものです。右?
はいの場合は問題ありません。しかし、これを実行するには、中央リポジトリがあるサーバ上でFTP/SSHを行う必要はありません。
devサーバ(hg init)に新しいリポジトリを作成してから、定期的に中央リポジトリからhg pullhg updateを実行して、devサーバの作業コピーを更新することができます。これはすべてdevサーバー上にあり、中央リポジトリーがあるサーバー上でこれを行う必要はありません。

+0

申し訳ありませんが、私は十分に明確ではありませんでした。私は初心者のために中央サーバーを意味するわけではありませんでした。これは私たち(他の開発者)にはあまりにも重すぎます。アイデアは次のようになります。開発者はローカルで起動し、ファイルをrepo(gitまたはbitbucket)にプッシュし、サーバーをsshして作成したレポをクローンします。プロジェクトを終了する前に、サブドメイン(dev)上のファイルを最初に(最初にクローンを作成する)取り出す予定で、プロジェクトが終了したら、ライブサーバー上のリポジトリを複製することによってサーバー上で同じことを行います。 cPanelアカウントを作成します。それは理にかなっていますか?この場合、私のワークフローは意味をなさないでしょうか? – Chris

+0

あなたのアップデートは意味があります、ありがとうございます。はい、私はローカルで起動します( 'hg init/hg add。/ hg commit/hg push')し、中央リポジトリにプッシュします。同じプロジェクトで2人以上の人を働かせる機会は、システムの仕組みを完全に理解し、セントラルレポジトリを身に付けるのがよいスタートになるまで、今はかなり小さいです。次に、テスト環境(dev)(hg init/hg pull/hg update')に最初にデプロイし、ローカルで作業を続け、中央リポジトリにプッシュし、作業が完了したらinit/pull /ライブサーバーでの更新。 – Chris

関連する問題