Author |
Topic: Use GitHub as SVN Repository |
|
Alex_Raj member offline  |
|
posts: |
99 |
joined: |
05/16/2006 |
from: |
San Jose, CA |
|
|
 |
|
|
Use GitHub as SVN Repository |
As GitHub allows private project hosting for free account, it becomes feasible to store some real stuff there.
Prerequisites: Apache Subversion 1.14.2 LTS -- The binary distribution can be downloaded from SlikSVN GitHub account -- must use developer's token to gain access to private repository
|
|
|
|
|
|
|
Alex_Raj member offline  |
|
posts: |
99 |
joined: |
05/16/2006 |
from: |
San Jose, CA |
|
|
 |
|
|
First of all, create a private repository on GitHub |
Procedure to create a private repository on GitHub On tab Repositories https://github.com/myAccount?tab=repositories, click on New button Type the repository name: OnGoing -- for example Select "Private" Once it's done, a default structure will be automatically generated:
OnGoing -- https://github.com/myAccount/ongoing.git
[+]--branches
[+]--trunk
|
|
|
|
|
|
|
Alex_Raj member offline  |
|
posts: |
99 |
joined: |
05/16/2006 |
from: |
San Jose, CA |
|
|
 |
|
|
Create a local counterpart repository |
Create a local directory
C:\tmp>mkdir svn_repo_ongoing
C:\tmp\svn_repo_ongoing>mkdir trunk
C:\tmp\svn_repo_ongoing>mkdir branches
Create and upload the 'projects' container:
C:\tmp\svn_repo_ongoing>mkdir trunk/projects
C:\tmp\svn_repo_ongoing>echo "" > trunk/projects/kept.txt <-- because GIT do not allow an empty directory
C:\tmp\svn_repo_ongoing>svn import -m "Create projects container under trunk"
"C:/tmp/svn_repo_ongoing/trunk/"
https://github.com/myAccount/ongoing.git/trunk/
Adding trunk\projects
Adding trunk\projects\kept.txt
Committing transaction...
Committed revision 1.
|
|
|
|
|
|
|
Alex_Raj member offline  |
|
posts: |
99 |
joined: |
05/16/2006 |
from: |
San Jose, CA |
|
|
 |
|
|
Create and upload a concrete project |
Create a specific project -- a maven multiple projects under C:\tmp\svn_repo_ongoing\trunk\projects\hello-one:
[+] ... hello-one
[+] -- app
[+] -- src
[+] -- main
[+] -- java
[+] -- com/xyz/integration
[-] -- Hello.java
[+] -- test
[+] -- java
[+] -- com/xyz/integration
[-] -- HelloTest.java
[-] -- pom.xml
{+] -- util
[+] -- src
[+] -- main
[+] -- java
[+] -- com/xyz/commons
[-] -- DateUtil.java
[+] -- test
[+] -- java
[+] -- com/xyz/commons
[-] -- DateUtilTest.java
[-] -- pom.xml
[-] -- pom.xml
Upload the whole project
C:\tmp\svn_repo_ongoing>svn import -m "Import hello-one project"
"C:/tmp/svn_repo_ongoing/trunk/projects/"
https://github.com/myAccount/ongoing.git/trunk/projects/
Adding trunk\projects\hello-one
Adding trunk\projects\hello-one\app
Adding trunk\projects\hello-one\app\pom.xml
Adding trunk\projects\hello-one\app\src
Adding trunk\projects\hello-one\app\src\main
Adding trunk\projects\hello-one\app\src\main\java
Adding trunk\projects\hello-one\app\src\main\java\com
Adding trunk\projects\hello-one\app\src\main\java\com\xyz
Adding trunk\projects\hello-one\app\src\main\java\com\xyz\integration
Adding trunk\projects\hello-one\app\src\main\java\com\xyz\integration\Hello.java
Adding trunk\projects\hello-one\app\src\test
Adding trunk\projects\hello-one\app\src\test\java
Adding trunk\projects\hello-one\app\src\test\java\com
Adding trunk\projects\hello-one\app\src\test\java\com\xyz
Adding trunk\projects\hello-one\app\src\test\java\com\xyz\integration
Adding trunk\projects\hello-one\app\src\test\java\com\xyz\integration\HelloTest.java
Adding trunk\projects\hello-one\pom.xml
Adding trunk\projects\hello-one\util
Adding trunk\projects\hello-one\util\pom.xml
Adding trunk\projects\hello-one\util\src
Adding trunk\projects\hello-one\util\src\main
Adding trunk\projects\hello-one\util\src\main\java
Adding trunk\projects\hello-one\util\src\main\java\com
Adding trunk\projects\hello-one\util\src\main\java\com\xyz
Adding trunk\projects\hello-one\util\src\main\java\com\xyz\commons
Adding trunk\projects\hello-one\util\src\main\java\com\xyz\commons\DateUtil.java
Adding trunk\projects\hello-one\util\src\test
Adding trunk\projects\hello-one\util\src\test\java
Adding trunk\projects\hello-one\util\src\test\java\com
Adding trunk\projects\hello-one\util\src\test\java\com\xyz
Adding trunk\projects\hello-one\util\src\test\java\com\xyz\commons
Adding trunk\projects\hello-one\util\src\test\java\com\xyz\commons\DateUtilTest.java
Committing transaction...
Committed revision 5.
|
|
|
|
|
|
|
Alex_Raj member offline  |
|
posts: |
99 |
joined: |
05/16/2006 |
from: |
San Jose, CA |
|
|
 |
|
|
Remotely DEV -- Working on the project from any DEV machine. |
Routine procedure for DEV:
Step 1. On Eclipse, SVN Repositories ADD URL: https://github.com/myAccount/ongoing.git Step 2. Checkout project "hello-one" from /trunk/projects/ Step 3. Goto project directory, run "mvn eclipse:eclipse" -- which will generate .project & .classpath Step 4. On Eclipse, File>Import>General>Existing Projects into Workspace, then click on "Next" Step 5. Select root directory ...hello-one & then select the options "Search for the nested projects" & then select the root and sub projects Step 6. The sub project should now be a JAVA project which is ready for develop & commit into SVN repository.
|
|
|
|
|
|
|
Alex_Raj member offline  |
|
posts: |
99 |
joined: |
05/16/2006 |
from: |
San Jose, CA |
|
|
 |
|
|
Remotely CICD -- Working on the project from any INTEGRATION machine. |
Routine procedure for CICD:
Step 1. Create a local container:
C:/>mkdir "C:/>tmp/svn_repo_test
Step 2. Checkout project "hello-one":
C:\tmp\svn_repo_test>svn checkout https://github.com/myAccount/ongoing.git/trunk/projects/hello-one
Step 3. Build the multiple probjects with one top command:
C:/>tmp/svn_repo_test/hello-one>mvn package
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.xyz.integration.HelloTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.046 sec
Results :
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ app-jar ---
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for hello-one-pom 1.0:
[INFO]
[INFO] hello-one-pom ...................................... SUCCESS [ 0.000 s]
[INFO] util-jar ........................................... SUCCESS [ 3.341 s]
[INFO] app-jar ............................................ SUCCESS [ 0.558 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.993 s
[INFO] Finished at: 2022-07-05T12:59:20-07:00
[INFO] ------------------------------------------------------------------------
|
|
|
|
|
|
|