Differences

This shows you the differences between two versions of the page.

Link to this comparison view

dev:extensions:svn_to_github [2015/01/01 10:04]
mistic100 [Prepare]
— (current)
Line 1: Line 1:
-<WRAP round tip> 
-This tutorial describes how to move from SVN to Github, and does not force you to do so. Piwigo.org SVN repository is still alive and there is no plan to shut it down. 
-</WRAP> 
  
-====== Migrate a plugin from Piwigo.org SVN to Github ====== 
- 
-Since November 2014, the [[http://piwigo.org/ext/|plugins repository]] and the [[http://piwigo.org/translate/|translation platform]] both support Github repositories, in addition to our Subversion repository. That mean you can use the power of Github (issues, forks, pull-requests) and seamlessly integrate with piwigo.org (no more need of manual releases and/or git/svn mirrors). 
- 
-This tutorial will guide you in the process to migrate your SVN repository to Github without loosing its history. It is inspired by [[https://www.atlassian.com/git/tutorials/migrating-overview|Atlassian tutorial]] for migrating to Bitbucket but cleaned and adapted for Github. It is adapted for plugins with only one branch (trunk), if you have branches and/or tags on your plugin and wish to migrate them, please refer to the original tutorial. 
- 
-===== Prerequisites ===== 
-I assume you will start with a fresh OS but you certainly have some or all of the required software. (The process was tested on Windows 7 and Ubuntu 14). 
- 
- 
-  * Java 1.7 or 1.8 
-  * Git 
-  * Subversion 
-  * Git SVN 
- 
-=== Windows === 
-You can get Java JRE on [[https://www.java.com/fr/download|Oracle website]]. 
- 
-Subversion binaries can be found on [[http://subversion.apache.org/packages.html#windows|Apache website]]. 
- 
-Also install [[http://msysgit.github.io|mysysGit]] containing both core Git and Git SVN. 
- 
-=== Ubuntu & co. === 
-You will need these packages : 
- 
-  * ''openjdk-7-jre'' (or ''openjdk-8-jre'') 
-  * ''subversion'' 
-  * ''git'' 
-  * ''git-svn'' 
- 
-=== Everyone === 
-You will also need a little tool created by Atlassian: [[https://bitbucket.org/atlassian/svn-migration-scripts/downloads/svn-migration-scripts.jar|svn-migration-scripts.jar]]. 
- 
-<wrap round tip> 
-If you have several repositories to migrate you can also use this NodeJS script I (Mistic) created to migrate my 25 plugins: [[https://gist.github.com/mistic100/017a848ff619f0624dde|piwigo-svn2github.js]]. 
-</wrap> 
- 
-===== Prepare ===== 
-In order to get a consistent commit history on Github you will have to tell Git SVN who is who. Open a terminal where ''svn-migration-scripts.jar'' is located (Shift+Click on Windows) and enter the following command: 
- 
-<code> 
-java -jar svn-migration-scripts.jar authors http://piwigo.org/svn/extensions/YOURPLUGIN > authors_YOURPLUGIN.txt 
-</code> 
- 
-This will create a TXT file with the following syntax: 
- 
-<code> 
-j.doe = j.doe <j.doe@mycompany.com>  
-m.smith = m.smith <m.smith@mycompany.com> 
-</code> 
- 
-Left part is Subversion login, right part is Github login and email. 
- 
-=== Adapt authors' file === 
-Now modify the left part of each line to match an actual Github accounts. The email must be one of the emails associated to the Github account. 
- 
-You will certainly get ''TranslationTeam'' in this file, the SVN user used to commit language files. Complete the line as following: 
- 
-<code> 
-TranslationTeam = Piwigo-TranslationTeam <translate-github@piwigo.org> 
-</code> 
- 
-Also if ''plg'' or ''mistic100'' made changes in your plugin, use theses: 
- 
-<code> 
-plg = plegall <plg@piwigo.org> 
-mistic100 = mistic100 <mistic@piwigo.org> 
-</code> 
- 
-For any other users, replace ''mycompany.com'' by ''piwigo.org''. 
- 
-And of course don't forget to specify the correct mapping for your own account! 
- 
-===== Convert ===== 
-Open your terminal on your working directory and type: 
- 
-<code> 
-git svn clone --authors-file=authors_YOURPLUGIN.txt http://piwigo.org/svn/extensions/YOURPLUGIN 
-</code> 
- 
-This will fetch all commits on your plugin and create locally all relevant Git commits. 
- 
-=== Push === 
-Now it's time to push your plugin to Github. 
- 
-[[https://github.com/new|Create a new repository]]. You must leave it empty (no README.md, no LICENSE, no .gitignore). 
- 
-Still in your terminal type: 
- 
-<code> 
-git remote add origin https://github.com/YOURLOGIN/YOURREPOSITORY 
-git push -u origin --all 
-</code> 
- 
-Hooray ! Your plugin is now published to Github. 
- 
-===== Update tools ===== 
- 
-See [[dev:extensions:use_scm]] 
 
Back to top
dev/extensions/svn_to_github.1420106692.txt.gz · Last modified: 2015/01/01 10:04 by mistic100
 
 
github twitter newsletter Donate Piwigo.org © 2002-2024 · Contact