1

タグとビルド スクリプトに関連する他の Mercurial の投稿を SO で探しましたが、私が見ている特定の問題は見つかりませんでした。

bitbucket.org がホストする Mercurial サーバーを数週間使用しています。私のワークフローは、コードを記述し、ローカル リポジトリにプッシュしてから、bitbucket にプッシュすることです。私は自分のプロジェクトの唯一の貢献者であり、コーディングに 1 台のマシンしか使用していないため、解決が難しいマージや競合はまだありません。TortoiseHg を使用して、チェックインとコード レビューを実行しています。

今日、ビルドを自動化するスクリプトを書きましたが、問題が発生しました。コーディングには c:\dev を使用し、ビルド プロセスのルート フォルダーとして c:\build を使用します。

私のプロセスは次のとおりです。1) 最新のコードを取得します -- リポジトリを複製するか、既に複製されている場合は最新のものを取得します 2) コードをバージョン管理します 3) コードをビルドします 4) ローカル リポジトリにタグを付けます 5) タグを bitbucket.org にプッシュします

私は単純なバッチプログラムを使用しています:

REM variable assignment, versioning, and error checking are excluded from this snippet

ECHO Getting code from remote repository...
IF EXIST .\%localrepo% (
    ECHO Pulling latest
    hg pull %localrepo%
) else (
    ECHO Cloning repository
    hg clone %remoterepo%
)
ECHO Done retrieving code.

ECHO Building code...
"c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" %solution% /build %solutionconfig%
ECHO Building complete.

cd %localrepo%
hg tag %version%
hg push
cd ..

このスクリプトは私の目標をすべて達成したようで、TortoiseHg に戻るまではすべて順調でしたが、リビジョン グラフに 2 つの行が表示されていることに気付きました。 c:\ビルドにあります。

画像を埋め込むほどの評判はありませんが、このリンクには TortoiseHg によって報告された改訂履歴のスクリーンショットが表示されます - http://i.imgur.com/2oNAR.png

少し苦労して、新しい行 (リビジョン 38) を元の行 (リビジョン 39) にマージしましたが、ビルド スクリプトを再度実行すると (リビジョン 40)、新しいタグが 2 行目に続きました。dev リポジトリから変更をコミットしようとしましたが、「push creates note remote head」が原因でコミットが中止されました。

ビルド スクリプトで根本的に間違ったことをしているような気がします。読む必要のあるアドバイスやトピックはありますか? Mercurial コード サーバーに関連する MSBuild 以外のスクリプト ソリューションは見つかりませんでした。何らかの理由でバッチ スクリプトを使用することに縛られているわけではありません。バッチ スクリプトは、単純で無料のソリューションで十分だと思っていました。

4

1 に答える 1

1

hg clone作業ディレクトリをデフォルト ブランチの先端に自動的に更新しますが、更新hg pullしません。hg pull -uプル後に現在のブランチのヘッドを更新するために使用します。

于 2012-08-19T01:56:54.183 に答える