Αλλαγή committer name σε hg repositories
George Notaras
gnot at g-loaded.eu
Wed Mar 28 00:49:44 EEST 2012
On 27/3/2012 11:33 μμ, Giorgos Keramidas wrote:
> 2012/3/27 George Notaras <gnot at g-loaded.eu>
>>
>> Όλα τα commits σε οποιοδήποτε hg repository κι αν έχω τα έχω κάνει
>> χρησιμοποιώντας το παρακάτω config στο hgrc (όσον αφορά στο username):
>
> Oops :)
>
>> ΥΓ: Μήπως τελικά θα έπρεπε να αλλάξω απλά το username στο hgrc και να
>> συνεχίσω σαν να μην συμβαίνει τίποτα;
>
> Ναι. Μπορείς να κάνεις αυτό.
>
> Επίσης μπορείς να δημιουργήσεις ένα νέο repository, με τα σωστά
> committer names, χρησιμοποιώντας το authormap flag του
> convert extension [1]. Το extension δεν παίζει μόνο με git,
> cvs, bazaar ως source αλλά και με hg ως source ;-)
>
> % cat /tmp/authormap.txt
> mynickname = Giorgos Notaras <gnot at g-loaded.eu>
> %
>
> Με αυτό σε ένα plain text file τρέξε κάτι σαν αυτό (αφού προφανώς
> ενεργοποιήσεις προσωρινά το 'convert' extension στο ~/.hgrc σου
> ή με command-line option):
>
> % cd /tmp
> % hg convert --authormap=/tmp/authormap.txt \
> /path/to/original/repository \
> new-repository
>
> Ύστερα κοίτα το new-repository. Αν σου φαίνεται καλό, πάρε
> backup το παλιό και αντικατέστησέ το.
>
> [1] http://mercurial.selenic.com/wiki/ConvertExtension
>
>
Ευχαριστώ. Χαίρομαι που αυτή είναι η ενδεδειγμένη λύση, γιατί αυτό
ακριβώς σκόπευα να κάνω.
Επειδή τα 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!
More information about the Linux-greek-users
mailing list