Author: hboutemy Date: Sun Oct 29 15:57:06 2017 New Revision: 1813686 URL: http://svn.apache.org/viewvc?rev=1813686&view=rev Log: added svn to git migration script, initially for sandbox
Added: maven/sandbox/trunk/scripts/git/ (with props) maven/sandbox/trunk/scripts/git/migrate-sandbox.sh (with props) maven/sandbox/trunk/scripts/git/svn2git/ (with props) Propchange: maven/sandbox/trunk/scripts/git/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Sun Oct 29 15:57:06 2017 @@ -0,0 +1 @@ +maven-* Added: maven/sandbox/trunk/scripts/git/migrate-sandbox.sh URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/scripts/git/migrate-sandbox.sh?rev=1813686&view=auto ============================================================================== --- maven/sandbox/trunk/scripts/git/migrate-sandbox.sh (added) +++ maven/sandbox/trunk/scripts/git/migrate-sandbox.sh Sun Oct 29 15:57:06 2017 @@ -0,0 +1,71 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# This script is used to migrate modules from SVN to Git, +# or more precisely to split a svn2git repo to a module repo +#!/bin/sh -e + +# svn2git repo to be split +svn2git_repo='maven-sandbox' + +# prefix for module +prefix='dist-tools/dist-tool-plugin/' +repo_name='maven-dist-tool' +artifactId='maven-dist-tool' + +git_src_location="svn2git/${svn2git_repo}" + +if [ ! -d ${git_src_location} ]; then + # clone svn2git repo + echo "Cloning source git-svn ${svn2git_repo} ..." + git clone https://github.com/apache/${svn2git_repo}.git ${git_src_location} + # ensure we don't accidentally overwrite the source repository + chmod ugo-w ${git_src_location} + echo "Done!" +fi + +echo "Filtering ${prefix} to ${repo_name}..." +if [ ! -d ${repo_name}/.git ]; then + # create the initial repo + git clone --no-hardlinks ${git_src_location} ${repo_name} + pushd ${repo_name} + + # make sure we don't push to the incorrect repo and also remove make sure + # we don't keep references to the remote repo + git remote rm origin + + # rename trunk to master + git branch -m trunk master + + # Remove everything except the path belonging to the module + git filter-branch --subdirectory-filter ${prefix} + + # remove unrelated tags + for tag in $(git tag); do + if [[ $tag != ${artifactId}* ]]; then + git tag -d ${tag} > /dev/null + fi + done + + # cleanup and compaction + git for-each-ref --format="%(refname)" refs/original/ | xargs -n1 git update-ref -d + git reflog expire --expire=now --all + git repack -Ad + git gc --aggressive --prune=now + popd + echo "Complete!" +else + echo "Already converted" +fi Propchange: maven/sandbox/trunk/scripts/git/migrate-sandbox.sh ------------------------------------------------------------------------------ svn:executable = * Propchange: maven/sandbox/trunk/scripts/git/svn2git/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Sun Oct 29 15:57:06 2017 @@ -0,0 +1 @@ +maven-*