SVN migró a GitLab

Solicitud para mantener registros de envío en SVN

1. Correspondencia de cuenta

  • Registros de registro de SVN:
r2 | lisi | 2014-12-12 15:11:59 +0800 (五, 12 12月 2014) | 1 line

ssss

  • registros de registro de git:
Author: zhangsan <[email protected]>
Date:   Thu Jan 16 11:28:30 2020 +0800

    初始化意见反馈模块

commit 938ef83245f699c5c016b98ce454cffba3ce8eff

Al comparar los registros de registro de svn y git, se puede encontrar que svn solo usa la cuenta para mostrar el registro de envío, y git no solo usa la cuenta, sino que también usa el buzón para confirmar. Entonces, svn migración a git, debe convertir los dos en consecuencia.

El método consiste en exportar la cuenta svn y luego convertir la cuenta svn a la cuenta svn en el lado izquierdo del signo igual, y la cuenta de GitLab y la información del buzón en el lado derecho del signo igual. zhangsan=zhangsan <[email protected]>Dicha información se registra en un archivo, y cada información de la cuenta se contabiliza en el archivo Una linea Debido a que solo nos enfocamos en la información de registro, solo exportamos las cuentas en los registros de registro y operamos en estas cuentas. El siguiente comando completa la exportación de la correspondencia de la cuenta:

svn log SVN项目的url -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2"="$2" <"$2"@example.com>"}' | sort -u > 记录账号对应关系的文件路径

A continuación exportamos la correspondencia de la cuenta al archivo svn2git.txt:

~/Desktop$ svn log http://10.69.10.15:8080/svn/ai_project | awk -F '|' '/^r/ { sub(" ","",$2); sub(" $","",$2); print $2"="$2" <"$2"@example.com>"}' | sort -u > svn2gitlab.txt

Explicación del comando:

  • http://10.69.10.15:8080/svn/ai_project: exportar registros de svn
  • Los registros exportados se pasarán al comando awk a través de la canalización '|'
  • La unidad de procesamiento de awk es una línea, por lo que awk divide cada línea de datos por "|", y el segundo elemento del resultado es el nombre de la cuenta. Sub elimina el espacio y el símbolo $ del nombre de la cuenta, y finalmente genera el número de cuenta. El número de cuenta se pasa al comando de clasificación a través de la canalización "|" para desordenar, y finalmente el resultado se guarda en el archivo svn2gitlab.txt

2. proyecto SVN pull git-svn

Use git-svn para extraer el proyecto SVN.

  • Descargue e instale git-svn, puede buscar git-svn en http://fr2.rpmfind.net/linux/rpm2html/search.php , y luego elija descargar e instalar según su plataforma. Por supuesto, también puede usar la fuente para instalar, como ubuntu puede usar: sudo apt-get install git-svn

  • Ejecute el comando :, git svn clone "SVN项目url" --no-metadata --authors-file="账号对应关系文件" 自定义项目名extraiga el proyecto y use el archivo de correspondencia de la cuenta para convertir el registro de envío svn en un registro de envío git.

    Pago normal de svn:

    ~/Desktop/H/ai_project$ ls -a
    .   app           gradle   local.properties  key.sign     proguard-project.txt  .svn
    ..  build.gradle  .gradle  main.iml          pda_svn.iml  settings.gradle
    
    

    Use git svn para extraer:

    ~/Desktop/TestSVN2Git/ai_project$ ls -a
    .   app           .git    .gradle           main.iml  pda_svn.iml           settings.gradle
    ..  build.gradle  gradle  local.properties  key.sign  proguard-project.txt
    

    Como se puede ver en la comparación anterior, se .svnconvierte en .git,

Ejemplos:

~/Desktop/TestSVN2Git$ git svn clone http://10.69.10.15:8080/svn/ai_project --no-metadata --authors-file=../svn2gitlab.txt ai_project

3. Envía el proyecto a GitLab

Cambie al directorio del proyecto extraído con Git-svn:

  • Configurar la información del usuario del proyecto
 git config --local user.name "GitLab用户名"
 git config --local user.email "GitLab邮箱"

Tales como:

~/Desktop/TestSVN2Git/ai_project$ git config --local user.name "Administrator"
~/Desktop/TestSVN2Git/ai_project$ git config --local user.email "[email protected]"
  • Cree en la página web de GitLab o use la API de GitLab para crear un almacén vacío, consulte "Migrar del almacén local de git al almacén remoto de git"

    Finalmente, obtenga la dirección git del almacén vacío: http://10.69.10.13/android/aiproject.git

  • Asociar almacén local a nuevo almacén remotogit remote add origin GitLab项目的git地址

    ~/Desktop/TestSVN2Git/ai_project$ git remote add origin http://10.69.10.13/android/aiproject.git
    
  • Empuje remotogit push -u origin master

    ~/Desktop/TestSVN2Git/ai_project$ git push -u origin master
    

En el tercer paso, la finalización es el problema de migrar el repositorio git local al repositorio git remoto .

Postdata:

Cuando svn migra git, es más o menos que git svn usa el archivo de correspondencia de la cuenta para extraer el registro de envío de svn al registro de envío de git al extraer el proyecto, y luego empujarlo al nuevo proyecto.

Publicado 381 artículos originales · elogiado 85 · 80,000 vistas +

Supongo que te gusta

Origin blog.csdn.net/weixin_40763897/article/details/105589263
Recomendado
Clasificación