0

シェルスクリプトとの小規模な継続的統合の一時的な解決策を実行しました。svn から更新し、ファイルをサイトのルート ディレクトリにコピーします。だからこんな感じ

cd ...

update svn

cp -R ... ...

そして、それをcrontabに入れます。まあ、それは一時的にうまく機能します。解決策ですが、いくつかの改善を行い、svn が変更されたこと (新しいリビジョンが表示された) を何らかの形で定義し、この場合にのみファイルをコピーすることを望んでいます (まあ、毎分のファイルのコピーに関連すると、サーバーの動作が遅くなります)。

しかし、私はLinuxの平均的なユーザーです:(

問題は、bashスクリプトを使用して、svnが新しいコミットを取得し、この場合にのみ更新やファイルのコピーなどの他のことを行うことを定義する方法です。

4

2 に答える 2

2

ディレクトリで 'svn info' を実行 (および awk|grep|お好みのツールを使用) して、チェックアウトしたもののリビジョン番号を抽出できます。コピー先の場所にも同じことを行います。チェックアウト ディレクトリのリビジョン番号がコピー先ディレクトリのリビジョン番号よりも大きい場合は、コピーを実行します。

これは、.svn ディレクトリを含むすべてをコピーすることを前提としています。

それらを除外する場合は、更新前と更新後に「svn info」を実行し、2 つのリビジョンを比較する必要があります。

于 2012-09-01T20:48:28.780 に答える
-1

止まる。

なぜあなたはこれをするのですか?

完全に無料で、インストールが非常に簡単な CI ツールが 80 種類もあるのに、シェル スクリプトと cron を使って独自のツールをハッキングするなんて、一体何をするのでしょうか?

スクリプティングや cron のスキルを向上させたいと考えていて、独自の CI の構築を楽しい小さなシナリオとして使用したいのでない限り、ここで時間を無駄にしているだけです。

于 2012-09-04T14:08:03.563 に答える