簡體   English   中英

在我使用 Eclipse 重構 class 后,mercurial 能否跟蹤重命名

[英]Can mercurial track a rename after I've used Eclipse to refactor a class

我剛剛使用 eclipse 重構了在 mercurial 中跟蹤的 class 名稱。我的 mercurial eclipse 插件是否正確跟蹤了我的重命名,或者我可以做些什么來幫助跟蹤它? 我如何判斷它是否跟蹤?

在 eclipse 執行重構后,我現在似乎無法使用hg rename ab命令。

Eclipse on Ubuntu 18.04
Version: 2022-03 (4.23.0)
hg --version
Mercurial Distributed SCM (version 4.5.3)

我猜 git 不需要處理這個,因為它是重命名檢測。

我不確定 Eclipse 做了什么,但你絕對可以檢查重命名是否被正確記錄,如果沒有,則在事后手動記錄。

我在這里假設您尚未提交更改。

一種檢查方法是:在命令行上運行hg diff -g path/to/new/file 如果記錄了重命名,那么從差異中應該很明顯; 要么您將看不到文件的任何更改,要么至少看到可識別的更改。 但如果它沒有被記錄為重命名,那么 diff 將認為整個文件是全新的。

接下來,如果沒有記錄文件重命名,你可以這樣做:

hg mv -A path/to/original/filename path/to/renamed/filename

然后它會將文件視為已重命名(例如,已移動)。 再次運行 diff 以確認效果。


一個非常相似的情況是,如果您通過將文件分解成多個部分來重構文件。 在這種情況下,您可以使用hg cp -A... (代替hg mv )將原始文件的所有派生部分記錄為它的“副本”。 這樣做的好處是,影響原始文件的任何后續合並也將傳播到其所有派生文件,這是跨副本/重命名跟蹤文件歷史的主要好處之一。

一種可能性是將addremove--similarity選項一起使用。

hg addremove --similarity 80

這通過相似性猜測文件重命名。 此選項采用 0(禁用)和 100(文件必須相同)之間的百分比作為其參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM