2つのローカルSVNチェックアウトを同期させる

問題の概要 私はSVNであり、負荷分散のために2つの異なるサーバーでチェックアウトしているWebサイトを持っています。これはdrupalサイトであり、assetsディレクトリとfilesディレクトリ以外のものはすべてサーバ上でローカルにチェックアウトされています。

今度は更新時に2つのローカルチェックアウトを手動で更新する必要があります。

つまり、2つのローカルチェックアウトを自動的に同期させる方法を見つける必要があるので、1台のサーバーで更新するだけですべてが同期されます。

Things i have tried:

  • md5 sum of the directory on server 1 and through SSH on server 2 (excluding the .svn directories) using a find command, then executing svn ups on server 2 using the outcome of diff as arguments. It always gives me the same files that are different.

    ssh $TARGET "cd "$SVN_TARGET" && find . -name .svn -prune -o -type f -print0 | xargs -0 md5sum" >> /tmp/server2.sums

    cd $SVN_SOURCE && find . -name .svn -prune -o -type f -print0 | xargs -0 md5sum >> /tmp/server1.sums

    diff /tmp/server1.sums /tmp/server2.sums | cut -d"." -f2 | xargs -i ssh $TARGET "su www-data -c 'svn up /dir/to/svn/repo/{} --username \"*******\" --password \"******\"'"

  • using svn info and then svn diff with the head revision to give me all the files changed. The problem there is that the local revision id doesn't equal the one of the head revision on the SVN server even when it's up to date.

どんな助けでも大いに有り難いです、そして、テキストの壁のための言い訳:)

1
ru de
"/ usr/bin/svnlook changed $ REPOSを使用してパス内のいくつかの単語を解析するsvnリポジトリ用のカスタムコミット後フックスクリプトを使用しました。ファイルを変更し、正しいサーバー上でSSHを介して発行されたsvn updateコマンドに基づいて取得します。ヘルプとすべての回答に感謝します。
追加された 著者 Veli Gebrev,

4 答え

5分ごとにスクリプトを実行する各ホストのcrontabエントリについてはどうですか。スクリプトはsvnリポジトリを更新し、後処理が必要と思われるものは何でもすることができます。

あるいは、subversionのpost-commitフックを使って2つのクライアントへのデプロイを引き起こすこともできます。

0
追加された

svn infoを実行してそのリビジョンを決定し、同時にもう一方のホスト上の同じリビジョンに対してssh svn updateを実行する、いずれかのホスト上のcrontabで実行される制御ジョブはどうでしょうか。 ?

0
追加された
あなたが出力でRevsionのためにgrepすればそれはそうなるでしょう。 Last Changed Rev.を使わないでください。
追加された 著者 Ted Mielczarek,
私が試したところ、svn infoから得たリビジョンIDがsvnリポジトリからの現在のリビジョンではないという問題がありました。
追加された 著者 Veli Gebrev,

Linux OSを使用している場合は、 DRBD を使用して2つのSVNサーバー間でデータを同期できます。 Subversionを気にせずにブロックレベル。

0
追加された

コードの展開には capistrano を使用することを強くお勧めします。 Drupalとの統合については、以下のチュートリアルをご覧ください。 = "http://www.blog.bridgeutopiaweb.com/post/deploying-a-drupal-site-with-git-and-capistrano/" rel = "nofollow noreferrer">秒。

0
追加された