Eu apenas tive que resolver esse problema sozinho. Eu tenho uma máquina Windows XP com um servidor Windows separado que hospeda o VisualSVN Server .
Também tenho o TortoiseHG instalado, bem como o cliente de linha de comando do CollabNet Subversion .
<Enable Convert Extension w/ Tortoise Hg 2>
Muito obrigado a bgever por apontar nos comentários que com o TortoiseHg 2.0, ativar a extensão de conversão é mais fácil do que nunca. Como ele diz
Com o TortoiseHG 2.0, isso ficou muito mais simples: Inicie o TortoiseHG Workbench no menu Iniciar. Selecione Arquivo -> Configurações. Selecione Extensões na lista. Marque a caixa de seleção 'converter' e clique em OK. É isso aí! Não é mais necessário gerar o arquivo de configuração e pesquisá-lo no sistema de arquivos. - bgever 11/03 às 7:56
</Enable Convert Extension w/ Tortoise Hg 2>
<Enable Convert Extension Manually>
Para converter um repositório de SVN para HG, siga estas etapas:
1) Abra C: \ Arquivos de Programas \ TortoiseHg \ Mercurial.ini
EDITAR
FYI - Tortoise Hg migrou este arquivo para
- XP ou mais antigo - C: \ Documents and Settings \ USERNAME \ Mercurial.ini
- Vista ou posterior - C: \ Users \ USERNAME \ Mercurial.ini
Esse arquivo estará quase vazio e você apenas listará o que deseja substituir lá. Se é isso que você tem, basta adicionar essas duas linhas no final do arquivo:
[extensions]
convert =
2) Procure a linha que começa com
[extensões]
3) Abaixo, você verá uma lista de palavras-chave comentadas com ponto-e-vírgula (;) em cada linha
4) Encontre a linha que diz
; convert =
e exclua o ponto e vírgula para que ele leia
convert =
</Enable Convert Extension Manually>
5) Abra o prompt de comando e navegue até o diretório em que deseja que a nova pasta hg seja criada (o processo criará uma nova pasta chamada YOURSVNREPONAME-HG no diretório em que o prompt de comando está aberto).
6) Use este comando
arquivo de conversão hg: /// y: / oursvnreponame
Descobri que a ferramenta de conversão pode ter problemas com repositórios em rede, então tive que mapear uma unidade para ela, mas isso funcionou muito bem para mim.
fonte
O Mercurial possui uma extensão de conversão integrada para isso .
fonte
Para converter um SVN Repo em um HG Repo E copiá-lo para um servidor diferente, você precisará de algumas coisas.
convert
extensão ao Tortoise. Inicie o TortoiseHG Workbench no menu Iniciar. SelecioneFile -> Settings
. SelecioneExtensions
na lista. Marque aconvert
caixa de seleção e clique em OK.Primeiro a conversão…
\\server\folder
não mapeie a própria pasta SVN Repo. Mapeie a pasta logo acima dela) Dê uma letra à unidade mapeada, comoY:\
CD /D Y:\
Y:\
prompt, digite:hg convert y:/RepoName
(use o nome do repositório atual). Cuidado com as barras invertidas e traseiras. O comando está na barra. Além disso, se o nome tiver espaços, coloque-o entre aspas. (ieY:/"My Repo folder"
)Segundo a clonagem ...
File -> Clone Repository
fonte
init
o primeiro repositório?Ninguém ainda não menciona o hgsubversion ( Extension Wiki ), que pode fazer isso sem quase nenhuma dor de cabeça (exceto casos raros e árvore específica).
Basta adicionar extensão, habilitá-lo e
hg clone SVN_REPO
ao repositório mercurial localfonte
Este é o FAQ do TortoiseHg :
Portanto, é aparentemente possível - estou usando o Linux e não tentei.
fonte
Acabei de converter um repositório SVN remoto com autenticação HTTP em um repositório Mercurial, e deixe-me dizer, não há muita documentação sobre como fazer isso. Eu tive que baixar a fonte Mercurial e instalá-la autônoma, usando o pacote de fontes, para que as ligações do SVN funcionem da maneira correta.
Eu instalei como:
O que funcionou muito bem na minha caixa do Server 2003. Agora posso converter um repositório SVN da maneira correta, fazendo algo assim:
A documentação para ConvertExtension no site Mercurial não é muito clara, mas diz o seguinte:
Então agora eu apenas uso a versão autônoma para a conversão e o TortoiseHg para o trabalho real do VCS.
fonte
Antes tarde do que nunca ...
Duas respostas pelo preço de uma ...
Se for um repositório público de código aberto, você pode usar http://svn2github.com/add/, que demorou cerca de meia hora para clonar esse repositório no GitHib e, em seguida, simplesmente puxá-lo para o Hg.
A vantagem de usar
hg convert
é que pode ser retomada. Converter SVN em Hg pode levar dias . Se você parar com isso, ele será retomado de onde parou.Abaixo está um arquivo em lotes que eu escrevi porque o Codeplex SVNbridge é um lixo. O repositório neste exemplo levou alguns dias para buscar toda a história (estou na Austrália, portanto a latência pode ter sido um fator). Eu gostaria de pensar que deu a um servidor TFS em algum lugar uma boa surra.
Esse arquivo em lote pode ser executado a qualquer momento para obter atualizações da fonte SVN, se forem as únicas restantes no mundo que ainda estão usando o SVN. Eu não testei, então veja o que acontece se você fizer isso. Se eu fosse você, abandonaria a ramificação original se você for editar o repositório.
O
robocopy shamap
material é manter o histórico do SVN se você clonar o repositório Hg, o shamap é efêmero - verifique o arquivo em lotes e o shamap (eu faria isso em uma nova ramificação).o lote ...
fonte
Usando a
convert
extensão do Mercurial:convert=
à[extensions]
seção .hgrc assim:sudo apt-get install python-subversion
hg convert
comandohg convert -h
para ajudahg convert http://[svnserver]/[Project] --source-type svn [DestinationDir]
(ver nota 2)hg push https://[mercurialserver]/[Project]
nota : você pode até repetir o comando hg convert para incluir novas alterações feitas no repositório svn após a conversão anterior.
Nota 2 : Quando hg convertido não funciona usando
http://
ousvn://
você pode primeiro fazer o checkout do repositório Subversion (ou atualizar um já existente) e convertido utilizando o check-out local; exemplo:hg convert [DirectoryOfLocalCheckout] --source-type svn [DestinationDir]
fonte