開発用コンピュータでユーザー名を設定せずにコミットしました。誰がこれらのチェンジセットをコミットしたかがわかりますので、遡ってユーザ名を変更できますか?水銀変更セットのユーザー名を変更できますか?
答えて
リポジトリを公開していない場合は、あまり難しくありません。 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. コミットのユーザー名を変更します。
- 5. 水銀から私のプロダクションWebサーバーに変更をどのように伝達できますか?
- 6. TFSマージ別の変更セット - 変更セットがありません
- 7. ユーザー名の変更iSQL plus
- 8. は自動的に `__version__`を水銀で更新しますか?
- 9. 水銀 - すべてのマージコミットを無視してブランチの変更を参照
- 10. Windowsの水銀コマンドラインの言語を永久に変更する方法は?
- 11. TFS 2012連続変更の変更セットから変更を再適用
- 12. 一部のWindowsユーザー名をプログラムで変更する(Windowsユーザーの名前を変更)
- 13. ユーザーを変更できませんParse
- 14. ユーザー名をメールログインに変更する
- 15. なぜ文字セットを変更できないのですか?
- 16. スパムウェブサイトのユーザー名変更ボタンをクリック
- 17. コントローラ名の変更/名前変更URL:Yii2
- 18. Apacheのスパークスタンドアロン変更エグゼキュータのユーザー名
- 19. のVisual Studioに変更2015ユーザー名
- 20. QueryMultiple結果セットの変更
- 21. 階層IDセットの変更
- 22. CloudFormationの「変更変更セット」機能は、計画と実行を分けることができますか?
- 23. ストアドプロシージャの結果セットの名前を変更する方法
- 24. ワードプレス:ボタンの名前を 'LOGOUT'からユーザーの名前に変更しますか?
- 25. Parse.comユーザーを更新するクラウドコードエラー206:ユーザーを変更できません
- 26. Rのすべての列名を変更できますか?
- 27. バインディングモード(TwoWay)の変更はデータベースで変更できますか?
- 28. es6モジュールでエクスポートの名前を変更できますか?
- 29. WebMatrixでサイトの名前を変更できますか?
- 30. CodeBlocksでファイルの名前を変更できますか?
次のドキュメントをご覧ください。この文書で扱っている歴史を書き直すことには、いくつかの欠点があります。しかし、それは可能と思われる。 - [編集履歴](http://www.selenic.com/mercurial/wiki/index.cgi/EditingHistory) –