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

Giorgos Keramidas keramida at ceid.upatras.gr
Wed Mar 28 11:57:33 EEST 2012


2012/3/27 George Notaras <gnot at g-loaded.eu>:
>> Επίσης μπορείς να δημιουργήσεις ένα νέο repository, με τα σωστά
>> committer names, χρησιμοποιώντας το authormap flag του
>> convert extension

> Ευχαριστώ. Χαίρομαι που αυτή είναι η ενδεδειγμένη λύση, γιατί αυτό
> ακριβώς σκόπευα να κάνω.
>
> Επειδή τα repositories έχουν 1) uncommitted changes και 2) αρχεία που
> δεν υπόκεινται σε version control και θέλω να τα παραλάβω από όλη αυτή
> τη διαδικασία όπως *ακριβώς* είναι τώρα με τη μόνη αλλαγή το όνομα του
> committer, σκέφτομαι να ακολουθήσω την παρακάτω διαδικασία για κάθε
> repository:
>
> ---------------------------------------
> # Store local revision number of repo-old
> CUR_REV=`hg -q -R repo-old identify -n | sed 's#\+$##'`
>
> # Convert repo-old using author map -> gives repo-new
> hg -q convert -s hg -d hg -A authors.map repo-old repo-new
>
> # Update repo-new to the CUR_REV revision
> hg -R repo-new update $CUR_REV
>
> # Now move the .hg directory of repo-new to repo-old and delete repo-new
> rm -fr repo-old/.hg
> mv repo-new/.hg repo-old/
> rm -fr repo-new
> ---------------------------------------
>
> Όλα αυτά βασίζονται στην υπόθεση ότι το νέο repository (repo-new) που θα
> προκύψει από το conversion έχει *ακριβώς* τα ίδια revision numbers στα
> αντίστοιχα changesets με το παλιο (repo-old). Ισχύει αυτό, έτσι δεν
> είναι; Επίσης, αν βλέπεις κάτι στραβό με τη διαδικασία (ή φυσικά
> οποιοσδήποτε άλλος), please let me know!

Τα hash που λειτουργούν ως identifiers των changesets ΔΕ θα ειναι
ιδια μετά.  Μη βασιστεις σε αυτό.

FWIW, υπάρχει τρόπος να βρεις από ποιο "old changeset id" βγήκε
κάθε νέο commit id στο converted repository. Η αντιστοιχία σώζεται
στο αρχείο ".hg/shamap" στο target repository του conversion.
Με λίγο scripting μπορείς να βρεις το νέο changeset id οποιουδήποτε
παλιού commit και να κάνεις update σε αυτό.

Γιατί χρειάζεται αυτό όμως; Αν έχεις uncommitted αλλαγές γιατί
δεν τις κάνεις πρώτα commit, να χεις και το κεφάλι σου ήσυχο ότι
δε θα τις χάσεις επειδή ξεχάστηκες κι έτρεξες τη λάθος εντολή
στο λάθος working directory;



More information about the Linux-greek-users mailing list