Solo tenía que abordar este problema yo mismo. Tengo una máquina con Windows XP con un servidor de Windows separado que aloja VisualSVN Server .
También tengo instalado TortoiseHG , así como el cliente de línea de comandos CollabNet Subversion .
<Enable Convert Extension w/ Tortoise Hg 2>
Muchas gracias a bgever por señalar en los comentarios que con TortoiseHg 2.0, habilitar la extensión de conversión es más fácil que nunca. Como el dice
Con TortoiseHG 2.0 esto se ha simplificado mucho: Inicie TortoiseHG Workbench desde el menú Inicio. Seleccione Archivo -> Configuración. Seleccione Extensiones de la lista. Marque la casilla de verificación 'convertir' y haga clic en Aceptar. ¡Eso es! Ya no es necesario intentar generar el archivo de configuración y buscarlo en el sistema de archivos. - bgever 11 de marzo a las 7:56
</Enable Convert Extension w/ Tortoise Hg 2>
<Enable Convert Extension Manually>
Para convertir un repositorio de SVN a HG, seguí estos pasos:
1) Abra C: \ Archivos de programa \ TortoiseHg \ Mercurial.ini
EDITAR
FYI - Tortoise Hg ha migrado este archivo a
- XP o anterior - C: \ Documents and Settings \ USERNAME \ Mercurial.ini
- Vista o posterior - C: \ Users \ USERNAME \ Mercurial.ini
Ese archivo estará casi vacío y solo enumerará lo que le gustaría anular allí. Si eso es lo que tiene, simplemente agregue estas dos líneas al final del archivo:
[extensions]
convert =
2) Busque la línea que comienza con
[extensiones]
3) Debajo verá una lista de palabras clave, comentadas con un punto y coma (;) en cada línea.
4) Encuentra la línea que dice
; convertir =
y elimine el punto y coma para que se lea
convertir =
</Enable Convert Extension Manually>
5) Abra el símbolo del sistema y navegue hasta el directorio en el que le gustaría que se creara la nueva carpeta hg (el proceso creará una nueva carpeta llamada yoursvnreponame-hg en el directorio al que está abierto el símbolo del sistema).
6) Utilice este comando
hg convertir archivo: /// y: / yoursvnreponame
Descubrí que la herramienta de conversión puede tener problemas con los repositorios en red, así que tuve que asignarle una unidad, pero esto funcionó bien para mí.
fuente
Mercurial tiene una extensión de conversión incorporada para esto .
fuente
Para convertir un SVN Repo en un HG Repo Y copiarlo en un servidor diferente, necesitará algunas cosas.
convert
extensión a Tortoise. Inicie TortoiseHG Workbench desde el menú Inicio. SeleccioneFile -> Settings
. SeleccioneExtensions
de la lista. Marque laconvert
casilla de verificación y haga clic en Aceptar.Primero la conversión ...
\\server\folder
no asigne la carpeta SVN Repo en sí. Asigne la carpeta justo encima de ella) Asigne una letra a la unidad asignada, comoY:\
CD /D Y:\
Y:\
solicite, escriba:hg convert y:/RepoName
(use el nombre del repositorio actual) Tenga cuidado con las barras inclinadas hacia adelante y hacia atrás. El del comando es una barra inclinada. Además, si el nombre tiene espacios, ponga el nombre entre comillas. (es decirY:/"My Repo folder"
)En segundo lugar, la clonación ...
File -> Clone Repository
fuente
init
el primer repositorio?Nadie todavía no menciona hgsubversion ( Extension Wiki ), que puede hacerlo sin casi ningún dolor de cabeza (excluyendo casos raros y árbol específico).
Simplemente agregue la extensión, habilítela y
hg clone SVN_REPO
al repositorio local de Mercurialfuente
Esto está en las preguntas frecuentes de TortoiseHg :
Entonces, aparentemente es posible: estoy usando Linux, así que no lo he probado.
fuente
Acabo de convertir un repositorio SVN remoto con autenticación HTTP en un repositorio de Mercurial, y déjame decirte que no hay mucha documentación sobre cómo hacer esto. Tuve que descargar la fuente de Mercurial e instalarla de forma independiente, usando el paquete de fuentes, de esa manera los enlaces SVN funcionarán correctamente.
Lo instalé como:
Que funcionó bien en mi caja Server 2003. Ahora puedo convertir un repositorio SVN de la manera correcta, haciendo algo como esto:
La documentación de ConvertExtension en el sitio de Mercurial no es muy clara, pero dice esto:
Así que ahora solo uso la versión independiente para convertir y TortoiseHg para el trabajo real de VCS.
fuente
mejor tarde que nunca ...
Dos respuestas por el precio de una ...
Si se trata de un repositorio público de código abierto, puede usar http://svn2github.com/add/, que tardó aproximadamente media hora en clonar ese repositorio en GitHib y luego simplemente extraerlo en Hg.
La ventaja de usar
hg convert
es que se puede reanudar. Convertir SVN a Hg puede llevar días . Si detiene esto, se reanudará desde donde lo dejó.A continuación se muestra un archivo por lotes que escribí porque Codeplex SVNbridge basura. El repositorio de este ejemplo tardó un par de días en recuperar todo el historial (estoy en Australia, por lo que la latencia puede haber sido un factor). Me gustaría pensar que le dio una buena paliza a un servidor TFS en algún lugar.
Este archivo por lotes se puede ejecutar en cualquier momento para extraer actualizaciones de la fuente SVN si resultan ser los únicos que quedan en la tierra que todavía usan SVN. No lo he probado, así que mira qué sucede si haces esto, así que si yo fuera tú, abandonaría la rama original si vas a editar el repositorio.
El
robocopy shamap
asunto es mantener el historial de SVN si clona el repositorio de Hg, shamap es efímero: verifique el archivo por lotes y el shamap en (haría eso en una nueva rama).el lote...
fuente
Usando la
convert
extensión de Mercurial:convert=
a la[extensions]
sección de .hgrc así:sudo apt-get install python-subversion
hg convert
comandohg convert -h
para obtener ayudahg convert http://[svnserver]/[Project] --source-type svn [DestinationDir]
(ver nota 2)hg push https://[mercurialserver]/[Project]
nota : incluso puede repetir el comando hg convert para incluir los nuevos cambios realizados en el repositorio svn después de la conversión anterior.
nota 2 : cuando hg convert no funciona usando
http://
osvn://
, primero puede verificar el repositorio de Subversion (o actualizar uno existente) y convertir usando la verificación local; ejemplo:hg convert [DirectoryOfLocalCheckout] --source-type svn [DestinationDir]
fuente