Script for synchronising/replicating SVN repositories to Git and Github
dpocock/sync2git
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
master
Could not load branches
Nothing to show
Could not load tags
Nothing to show
{{ refName }}
default
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
- Open with GitHub Desktop
- Download ZIP
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
1. Set up directories and permissions: mkdir -p /etc/sync2git/projects mkdir -p /var/lib/sync2git chown sync2git /var/lib/sync2git 2. Create a project: mkdir -p /etc/sync2git/projects/myproject cat > /etc/sync2git/projects/myproject/config << EOF SVN_REPO=http://myproject.googlecode.com/svn GIT_REPO=git@github.com:myprofile/myproject.git EOF 3. Set up the authors.txt file: cd /etc/sync2git/projects/myproject svn-authors-extract http://myproject.googlecode.com/svn vi authors.txt When editing the authors.txt file, please remember that you won't be able to amend the mappings again after people start using your git repository to create forks or branches. It is essential to put the full names and email addresses correctly before you make the git mirror available publicly. It is OK to go and add extra records to the file later, for example, if new users are added to SVN. Also, if uploading to a service like github, please use the email addresses that the committers use for their github accounts. This way, the contributors will be recognised properly for their work, as github will convert the name next to each commit to a hyperlink going to the corresponding github user page. 4. Run it manually (optional) sync2git 5. Run it from cron Set up a sync2git user and group on the system to own everything: groupadd -r sync2git useradd -d /var/lib/sync2git -g sync2git -r -s /bin/false sync2git chown -R sync2git.sync2git /var/lib/sync2git Set up a cron job: cat >> /etc/crontab << EOF 0 * * * * sync2git /usr/local/bin/sync2git > /dev/null EOF SVN repository changes URL -------------------------- Disable the cron job before making this change. This only works if there is at least one new commit in SVN. su - sync2git cd /var/lib/sync2git/$PROJECT/svn-clone vi .git/config - comment out old URL, add new URL git svn fetch vi .git/config - uncomment old URL, comment out new URL git svn rebase -l vi .git/config - comment out old URL, uncomment new URL git svn rebase Noew enable the cron job again.
About
Script for synchronising/replicating SVN repositories to Git and Github
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published