Sync μεταξύ Mercurial και Git repos

George Notaras gnot at g-loaded.eu
Thu Oct 28 18:23:36 EEST 2010


On 28/10/2010 12:54, Giorgos Keramidas wrote:
> On Wed, 27 Oct 2010 16:56:40 +0300, George Notaras <gnot at g-loaded.eu> wrote:
>> Υπάρχει κάποιο πρόγραμμα που να κάνει sync ένα Mercurial repository με
>> ένα Git;
>
> Το fast-import/fast-export format είναι το de-facto standard για τέτοιου
> είδους συγχρονισμό.  Δουλεύει πολύ καλά τόσο σε git όσο και hg, κάτι που
> είναι φοβερό πλεονέκτημα σε σχέση με το 'Tailor' κι άλλα αντίστοιχα
> εργαλεία από παλιότερα.
> 
> Πρόσεχε όμως γιατί ακόμα και με fast-export/fast-import υπάρχουν δύο
> πολύ σημαντικές λεπτομέρειες οι οποίες αξίζουν προσοχή:
> 
>   - Δεν είναι ιδιαίτερα "εύκολο" στη χρήση.  Μπορεί να χρειαστεί να
>     γράψεις κάμποσο scripted κώδικα για το integration.
> 
>   - Υπάρχουν διαφορές σημειολογικού χαρακτήρα μεταξύ git & hg, οι οποίες
>     μπορεί να επηρεάσουν το πόσο καλά γίνεται ο συγχρονισμός.
> 
> Ειδικά το δεύτερο έχει σχέση με το τι ακριβώς ονομάζει 'branch' το κάθε
> ένα από τα git/hg.  Αυτό που λέγεται 'branch' στο git δεν έχει σχέση με
> τα 'named branches' του hg, αλλά μοιάζει περισσότερο με τα 'bookmarks'
> του mercurial.
> 
> Επειδή δεν ξέρω ακόμα πόσο καλή υποστήριξη έχει το fast-export του git
> και το fast-import του hg για bookmark-based 'branches', ίσως να μην
> είναι ακόμα δυνατόν να έχεις 100% συγχρονισμό ή να χρειάζεται να γράψεις
> εσύ κάποια από τα μέρη του fast-import/bookmark integration.

Να γράψω εγώ κάτι τέτοιο είναι μάλλον αδύνατον. :) Πάντως τα git
repositories που με ενδιαφέρουν είναι σχετικά απλά. Τα περισσότερα έχουν
μόνο το master branch και ίσως κάποια tags. Από την άλλη δεν χρησιμοποιώ
το 'bookmark' extension του hg. Οπότε πιστεύω ότι πιθανότατα θα δουλέψει.

> Αν, από την άλλη, σε ενδιαφέρει μόνο το ένα μέλος του συγχρονισμού
> (π.χ. θέλεις να τραβάς από git αλλαγές σε ένα τοπικό hg clone), μπορείς
> να δουλέψεις άνετα με το 'convert' extension του hg.  Εγώ αυτό κάνω για
> να συντηρώ κάποια προσωπικά patches πάνω από το origin/master branch του
> git tree του GNU Emacs.

Ενδιαφέρον αυτό. Θα προσπαθήσω να το κάνω για μερικά git repositories
που με ενδιαφέρουν.

> Δες και τα εξής wiki pages για περισσότερες πληροφορίες:
> 
>   http://mercurial.selenic.com/wiki/BookmarksExtension
>   http://mercurial.selenic.com/wiki/ConvertExtension
>   http://mercurial.selenic.com/wiki/FastImportExtension

Ευχαριστώ για τα links.

Θα τα δοκιμάσω τις επόμενες ημέρες και θα επανέλθω.


More information about the Linux-greek-users mailing list