2009-08-18 22 views
10

Kiedy popełnienie zmian do Mercurial, to można automatycznie wykrywa ruch/copy/zmienia nazwę za pomocą poleceniaTortoiseHg Kopiowanie Podobieństwo cecha

Hg addremove -similarity 100

Liczba po podobieństwa wskazuje, w jaki sposób podobne dwa pliki muszą mieć od 0 do 100% dla mercurial, aby zdecydować o przeniesieniu, skopiowaniu lub zmianie nazwy zamiast tylko nowego pliku.

To jest wspaniała funkcja. Czy TortoiseHg może to zrobić?

Odpowiedz

16

Tak, może. Jeśli spojrzysz na numer TortoiseHg manual, znajdziesz sekcję 4.12 zatytułowaną "Zmień nazwę zgadywania". Zacytować:

  1. Wybierz jeden lub więcej Unrevisioned plików
  2. przesuń suwak podobieństwa (Minimalne podobieństwo Procent) do procentowego meczu chcesz
  3. Prasa albo Find Zmienia lub znaleźć kopie
  4. Wybierz wybrane mecze i zaakceptuj dobre mecze.
  5. Powtórz aż wszystkie niewersjonowane pliki są dopasowane

Fajną rzeczą jest krok 5: możesz w rzeczywistości przełączać podobieństwo, a Tortoise zmienia, które pliki są uważane za nazwy w locie. Możesz uzyskać większość tego, czego potrzebujesz, ostrożnie przesuwając pasek do odpowiedniego procentu i ponownie sprawdzając.

+0

Dziękuję bardzo! Nigdzie nie mogłem tego znaleźć (kto by pomyślał o sprawdzeniu instrukcji ...) Czy zdajesz sobie sprawę, czy jest jakiś sposób, aby to się stało automatycznie? –

+0

Co do twojego drugiego pytania: Nie wiem, czy może się to zdarzyć automatycznie. Ale Tortoise jest prawie "WYSIWYG": jeśli jest na to opcja, zwykle jest to oczywiste. (Podręcznik jest więc * drugim * miejscem do patrzenia.) Interfejs użytkownika jest pierwszy. :) – quark

+0

Aby zaktualizować: Znajdź Kopie już nie istnieją, ale z menu Znajdź zmiany można odznaczyć pole wyboru, aby uwzględnić elementy, które nie są usunięty i będzie miał taki sam efekt. – StriplingWarrior

4

Mam plik ustawienia globalne (mercurial.ini) skonfigurowany:

[defaults] 
addremove = --similarity 100 

Jeśli o mnie chodzi, to powinno być domyślnie włączone.

+1

To świetny pomysł, nie widzę powodu, aby nie mieć tego zestawu domyślnie. –

+0

+1 za świetny pomysł, ale nie zrobiłem tego, bo tak naprawdę nie odpowiada na pytanie, które zostało zadane. –

5

ustawienie "-s 100" domyślne dla addremove to świetny pomysł; ale hgrc.5 mówi, że [domyślne] jest przestarzała, więc używam tych:

[alias] 
addremove = addremove --similarity 100 
adrs = addremove --similarity 0.01 

Ten ostatni jest bardzo przydatny do śledzenia danych binarnych (takich jak pliki CAD lub rysunki), który jest nieskompresowany i wyraźnie segmentowy/warstwowe.