2011-01-03 3 views
2

私はちょうど2週間前に最後に作業したプロジェクトを開いたところ、私の作業バージョンはいくつかの改訂版であることを発見しました。(Mercurial via Bitbucketを使用しています)最新のコンパイルされたアセンブリは、私の開発マシンで100%最新のものですが、私のローカルマシンとリモートコードのリポジトリには、すべての新しいコードがありません。新しいコードがAWOLになって、古いリビジョンを残しました。それはどこに行きましたか?

レッドゲートの.NET Reflectorを使用して最新のコンパイルをディスアセンブルすると、私の最新のコードがすべて表示されますが、現在のところ、開発マシンやリポジトリにはどこにも見つかりません。すべてのコードがに戻ってきたようです。。私は誤って私のリモートリポジトリからいくつかのコードを元に戻したり、上書きしたりすることができますか?

私は最新の変更をコミットしてはいけませんが、これらはまだ私の作業コピーに残っているはずですか?私はシステムのロールバックを知らない。私はWindows 7のデベロッパーボックスでVisual Studio 2010を実行していますが、これはMercurialの欠陥ではないと確信していますが、認識していない機能がありますか?これはどのように可能ですか?

答えて

3

コミットされていません常に悪い考えは、「これは何か」「これは完了していません」と言うことです。

hg summaryの出力は何ですか?あなたはhg updateを過去のリビジョンにすることは可能ですか?もしそうなら、新しいものはまだリポジトリにあり、作業ディレクトリではありません。 Mercurialはコミットされた変更を捨てることはなく、更新時に--cleanのようなオプションを使用するとコミットされていない変更を取り除くだけです。 hg revertを実行した場合は、--no-backupを実行していない限り、バックアップファイルは.origになります。

簡潔に言えば、Mercurialはあなたが非常に頑張らなければ変更を捨てないので、まだそこにいるか、それは外部のものです。

+0

YYEEEEEEESSS !!!!私の新しいバージョンは.origファイルにあります。 Mercurialに現在の(古い)バージョンと(新しい).origファイルを置き換える方法を教えてください。私はJon Skeetに新鮮なコーヒーポットを持ってもらう。 –

+0

Nevermindは、作業コピーを.origファイルに置き換えるために 'for/f%i in( 'dir/s/b * .orig')do @copy%i%〜dpniを使用してソートしました。 –

+0

それはうまくいってうれしいです。あなたが習慣的にコミットしていない場合は、元に戻すことに注意してください。または、より強くコミットしてください。 :) –

関連する問題