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