Re: Αλλαγή committer name σε hg repositories

Giorgos Keramidas keramida at ceid.upatras.gr
Wed Mar 28 23:03:34 EEST 2012


2012/3/28 George Notaras <gnot at g-loaded.eu>:
>> FWIW, υπάρχει τρόπος να βρεις από ποιο "old changeset id" βγήκε
>> κάθε νέο commit id στο converted repository. Η αντιστοιχία σώζεται
>> στο αρχείο ".hg/shamap" στο target repository του conversion.
>> Με λίγο scripting μπορείς να βρεις το νέο changeset id οποιουδήποτε
>> παλιού commit και να κάνεις update σε αυτό.
>
> Αχά! Το ".hg/shamap" ακούγεται πολύ χρήσιμο. Αν το ήξερα πιο πριν, θα
> βασιζόμουν πιθανότατα σε αυτό και όχι στο revision number.
>
> Από την άλλη, επειδή έκανα ήδη το conversion (έχω κρατήσει backup τα
> παλιά βέβαια :P), αυτό που παρατήρησα είναι ότι το revision number του
> κάθε changeset στο repository που προκύπτει από το conversion είναι
> ακριβώς το ίδιο me to revision number που είχε το ίδιο changeset στο
> original repository. Δηλαδή τα revision numbers (ή local identifiers -
> αν χρησιμοποιώ σωστά την ορολογία) δεν φαίνεται να αλλάζουν.

Αυτό έτυχε να συμβαίνει στο δικό σου repository, επειδή το hg προσπαθεί
να διατηρήσει την ίδια "τοπολογία" στο γράφο του source history όπου
αυτό είναι δυνατόν.

ΠΡΟΣΟΧΗ όμως, δεν ισχύει πάντα. Π.χ. αν χρησιμοποιήσεις τα options:

    hg convert --branchsort
    hg convert --datesort

Στο help του convert extension λέει το εξής:

    % hg help convert
    [...]
    By default, all sources except Mercurial will use --branchsort. Mercurial
    uses --sourcesort to preserve original revision numbers order. Sort modes
    have the following effects:

    --branchsort  convert from parent to child revision when possible, which
                  means branches are usually converted one after the other.
                  It generates more compact repositories.
    --datesort    sort revisions by date. Converted repositories have good-
                  looking changelogs but are often an order of magnitude
                  larger than the same ones generated by --branchsort.
    --sourcesort  try to preserve source revisions order, only supported by
                  Mercurial sources.

Οπότε στη δική σου περίπτωση επειδή το source repository είναι τύπου
Mercurial και επειδή _μπορούσε_ να γίνει conversion με 'sourcesort',
έτυχε να ισχύει αυτό που λες με τα local revision numbers.



More information about the Linux-greek-users mailing list