開発用コンピュータでユーザー名を設定せずにコミットしました。誰がこれらのチェンジセットをコミットしたかがわかりますので、遡ってユーザ名を変更できますか?水銀変更セットのユーザー名を変更できますか?
答えて
リポジトリを公開していない場合は、あまり難しくありません。 MercurialにはConvert extensionを使用する必要があります。これにより、既存のリポジトリを新しいものに絞り込むことができます。 --authorsスイッチを使用すると、コミットされたコミットごとに著者を編集できます。
にリポジトリが公開されている場合は、ユーザへの影響を考慮してください。水銀のWikiには、reasons not to edit historyがあります。
あなた.hgrcに以下の行を追加して拡張を有効にする:
[email protected][email protected]
:
[extensions]
hgext.convert=
は新しい名前(authors.convert.list)に古い名前をマッピングするためのファイルを書きます変換を実行します。
hg convert --authors authors.convert.list SOURCE DEST
私はちょうどそれをチェックした、それは私のために働く:)。
とても素敵で完全な答えです。 –
@Andrew Aylett:どのようにチェックしましたか? "$ hg clone myWrongRep name"は、変更を行い、 "$ hg convert --authors theFile myWrongLocalRep"となります。今では ".hg"ファイルを生成し、サイトは "hg status"と何かがあるはずだと言っていますが、何も見つけられません。 "$ hg update"と "$ hg push"を変更しても変更はありません。何が欠けていますか? – hhh
authorsを確認することができます。 hog log --template '{author} \ n' | less'、まだ動作していない - authormapのことを理解していない - – hhh
私はいくつかの異なる方法(無関係のリポジトリを作成したConvert Extensionを含む)を試しました。 editing history using MQのMercurial wikiの手順は、私が最も役に立つと思ったものでした。 (もちろん、の公開について知られているの履歴を編集することについての通常の警告はありませんが、あなただけが編集できるようになっているローカルチェンジセットは悪い考えです)。
私はここで重要なステップを要約し、著者の変更の仕組みを明確にします。最初の間違った著者のコミットがリビジョンBAD
にあるとします(もちろん、あなたはどこでも変更を公開していません)。
$ hg qimport -r BAD:tip
(彼らは今.hg/patches
で見つけることができます)
[extensions]
hgext.mq=
パッチに最近のチェンジセットを変換するには、これを追加することによって、MQを有効にします
「適用を解除する」すべてのパッチBAD
前のリビジョンの状態にあなたのリポジトリを取得するには、(それらが適用されてきたと仮定し、それらをリバース):
$ hg qpop -a
あなたがパッチを見れば、あなたを」 LL著者は、すべてのパッチにコメント行の一種でエンコードされていることを参照してください。
$ grep User .hg/patches/*
.hg/patches/102.diff:# User Firstname Lastname <[email protected]>
は今(私はここにPerlを使用しています)パッチを修正するためのツールを置き換える/お好みの検索を使用します。さんは[email protected]
であることをあなたがコミットの名前をしたいと仮定しましょう:
$ perl -pi -e 's/f\.lastname\@oops\.wrongurl\.example\.com/f.lastname\@righturl.example.com/' .hg/patches/*.diff
今、あなたは成功した著者名を変更し、再適用するパッチをしていることを確認してください。
$ hg qpush -a
その後、適切に適用されているパッチを変換します変更セット:
$ hg qfinish -a
これで完了です。あなたのリポジトリは依然として関連するものとしてリストされているので、プッシュに関する苦情はありません。
"abort:マージリビジョンをインポートできません[リビジョン番号] –
私のコミットの状態を" published "から" draft "に変更する必要がありました – user2428118
閉じる前に'/'が必要でした'perl'コマンドでエラーが返されました'置換置換は-e行1で終わっていませんでした 'それ以外の場合は完璧です、ありがとう! – ederag
私はhistedit
拡張子を使用しました。これは、 "revert"や "mq"のような新しいreposを作成せずに著者を変更できるようにしました。
まず、あなたのMercurialの設定ファイルでは、ユーザー名が正しく設定されていることを確認し、HISTEDIT拡張可能:
hg histedit -r 40
:あなたがリビジョン40、使用を変更したい場合は、次に
[ui]
username = Your Name <[email protected]>
[extensions]
histedit =
を
表示されるファイルで、リビジョン40に対応する行で、pick
という語をedit
に変更します。ファイルを保存して閉じます。
今、hg commit
です。コミットメッセージを再入力して保存する必要があります。
最後に、hg histedit --continue
。
コミットに新しいusername
が表示されます。副作用はコミットのタイムスタンプも更新されます。
あなたは単一の発信チェンジセットを持っている場合は、これを行うには非常に単純な方法があります:
$ hg ci --amend --user "My Name <[email protected]>" -X "**"
あなたが任意のローカルな変更がない場合-X "**"
オプションを省略することができます。
仕事!(神は私がやっていることを知っている:)) –
- 1. 水銀で著者を変更する
- 2. 水銀で移動/名前変更アクションを元に戻しますか?
- 3. 水銀の更新は、すべての変更
- 4. ユーザー名の変更iSQL plus
- 5. 水銀から私のプロダクションWebサーバーに変更をどのように伝達できますか?
- 6. は自動的に `__version__`を水銀で更新しますか?
- 7. 水銀 - すべてのマージコミットを無視してブランチの変更を参照
- 8. 一部のWindowsユーザー名をプログラムで変更する(Windowsユーザーの名前を変更)
- 9. Windowsの水銀コマンドラインの言語を永久に変更する方法は?
- 10. ユーザー名をメールログインに変更する
- 11. バインディングモード(TwoWay)の変更はデータベースで変更できますか?
- 12. ワードプレス:ボタンの名前を 'LOGOUT'からユーザーの名前に変更しますか?
- 13. WebMatrixでサイトの名前を変更できますか?
- 14. es6モジュールでエクスポートの名前を変更できますか?
- 15. CodeBlocksでファイルの名前を変更できますか?
- 16. cygwinのユーザ名の変更/変更
- 17. ロールバック変更セット - VS2010/TFS2005
- 18. BRMS-リソースと変更セット
- 19. Liquibase diff変更セットとデータベース
- 20. どのように私は、結果セット内の列名を変更し、変更された列名
- 21. Drupalブロックの "delta"値の名前を変更できますか?
- 22. llblgenコード変更時にストアドプロシージャのパラメータ名を変更します
- 23. ADのユーザー名を変更します。ASP.MVC 3のWebサイト
- 24. 水平分割ペインウィンドウでのサイズ変更
- 25. Subversionプロジェクトの名前を安全に変更できますか?
- 26. Main.mxmlの名前を変更できますか?
- 27. `nohup.out`の名前を変更できますか?
- 28. Cユーザーの変更
- 29. NLog:コードからソース名を変更できますか?
- 30. ユーザーは選択ボックスの入力変数を変更できますか?
次のドキュメントをご覧ください。この文書で扱っている歴史を書き直すことには、いくつかの欠点があります。しかし、それは可能と思われる。 - [編集履歴](http://www.selenic.com/mercurial/wiki/index.cgi/EditingHistory) –