Domanda

Sto cercando di convertire un repository SVN per Mercurial, ma sto avendo alcuni problemi. Questi sono i passi che ho preso: (io sono su Windows)

Acceso "convertito" nelle estensioni

Ha aperto una finestra di comando e digitato:

hg convert http://myversioncontrorepositoryhere

Si dice che è inizializzare la cartella di destinazione e poi chiede:

Enter username for Administration at http://myversioncontrorepositoryhere:

digitare il mio nome utente quindi

 in Administration at http://myversioncontrorepositoryhere:

Suppongo che questo è la password, ma semplicemente torna indietro al

Enter username for Administration at http://myversioncontrorepositoryhere:

Che cosa sto facendo di sbagliato? Sono molto sicuro che sto digitando il mio nome utente e la password in modo corretto.

È stato utile?

Soluzione

Non so che cosa può andare male, ma mi piacerebbe suggerire una soluzione alternativa (che è l'unico modo che ho usato personalmente per questo compito!): In primo luogo svnsync il progetto svn per fare un mirror locale, quindi hg convert quello specchio locale - questo è ciò che O'Sullivan suggerisce in suo libro (questo URL ha, come "campione dal libro", esattamente l'appendice rilevante per l'importazione di progetti da altri VCS a hg - con particolare attenzione alle svn), anche se il suo suggerimento è in gran parte ispirata da considerazioni di velocità ho il sospetto che in seguito ha anche salvato mi autenticazione e autorizzazione fastidi, e spero che potrebbe fare lo stesso per voi -!)

Altri suggerimenti

hgsubversion invece; è molto più robusto. Ho avuto un sacco di problemi bizzarri che interagiscono con CLI di Subversion su Windows (per lo più risolti utilizzando CMD al posto di un'altra shell).

Ho avuto la fortuna che fissa il problema di autenticazione con la semplice conversione da un checkout locale:

svn co http://myversioncontrorepositoryhere localrepo
hg convert localrepo

Nella mia conversione esperienza di un repository Subversion reale parola con il mazzo di progetti e anni di storia è un po 'più coinvolto. Soprattutto perché in Subversion è bene avere un enorme pronti contro termine per tutte le cose. Sui repository Mercurial contrari sono invitati a essere molto più a grana fine.

Suppongo che il seguente schema repository Subversion:

├── project1
│   ├── branches
│   ├── tags
│   └── trunk
│       ├── package1
│       └── package2
└── project2

La conversione dovrebbe diventare package1 e package2 in repository Mercurial separati con la propria storia. In questa risposta mi interessa unico percorso, ma la conversione di tag e rami è anche possibile .

Preparazione

Di solito faccio la conversione su un server remoto con connessione veloce. Per Debian-famiglia sono necessari i seguenti pacchetti.

apt-get install mercurial subversion python-subversion

Poi Converti estensione dovrebbe essere attivato.

echo -e "[extensions]\nhgext.convert=" >> ~/.hgrc

In Windows assicurati di aver adempiuto i prerequisiti .

Esecuzione

Si noti che se si tenta di fare una conversione direttamente da una sovversione remota Repo probabilmente ci vorranno ore, in modo che il seguente crea specchio del percorso del progetto. Poi ogni conversione è una questione di secondi a minuti.

cd /tmp
svnadmin create svn-mirror

# on Windows you may need to look at comments to accepted answer
echo '#!/bin/sh' > svn-mirror/hooks/pre-revprop-change
chmod +x svn-mirror/hooks/pre-revprop-change

svnsync init file:///tmp/svn-mirror svn://subversion.repo/project1
svnsync sync file:///tmp/svn-mirror

echo 'include project1/trunk/package1' > package1-map
echo 'rename project1/trunk/package1 .' >> package1-map    
hg convert --filemap=package1-map svn-mirror package1

echo 'include project1/trunk/package2' > package2-map
echo 'rename project1/trunk/package2 .' >> package2-map    
hg convert --filemap=package2-map svn-mirror package2

Poi dentro directory del pacchetto è possibile eseguire hg serve -p 8080 e clone dalla http://your.host:8080 con un cliente mercuriale o manager repo come RhodeCode.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top