Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Contents:

Table of Contents

Scope

...

& Status

The following projects in the fedora-commons subversion repository on sourceforge.net will be moved:

Subversion Directory

GitHub Repository

Status

fedora

github.com/fcrepo/fcrepo
github.com/fcrepo/fcrepo-before33*

(tick) Moved

services/diringest

github.com/fcrepo/diringest

(tick) Moved

services/genericsearch

github.com/fcrepo/gsearch

(tick) Moved

services/oaiprovider

github.com/fcrepo/oaiprovider

(tick) Moved

services/sipcreator

github.com/fcrepo/sipcreator

(tick) Moved

utilities/

github.com/fcrepo/migration-2to3

(tick) Moved

* In order to make cloning and forking practical for the majority of contributors, the fcrepo repository will contain everything from the 3.3 release forward.  The fcrepo-before33 repository will contain everything prior to 3.3.  Instructions will be provided to locally graft the repositories for those who are interested in having the full view of history in a single repository.

...

No Format
git tag -d NA1-0 2.2.4-patch1 release-2.2.4-patch1

Rename Install git-retag, then rename and sign original release tags using git convention (preserves original tag datesmetadata):

No Format

git tagretag fedora-1-f0 v1.0
git retag fedora-1-0
git tag -f 1 v1.1
git retag fedora-1-1
git tag -f1 v1.1.1
git retag fedora-1-1-1
git tag -f2 v1.2
git retag fedora-1-2
git tag -f1 v1.2.1
git retag fedora-1-2-1
git tag -f0 v2.0
git retag fedora-2-0
git tag -f 1 v2.1
git retag fedora-2-1
git tag -f1 v2.1.1
git retag fedora-2-1-1
git tag -f 1b v2.1b
git retag fedora-2-1b
git tag -f2 v2.2 fedora-2-2

git tagretag release-f v22.2.1 release-2v2.2.1
git tagretag release-f v22.2.2 release-2v2.2.2
git tagretag release-f v22.2.3 release-2v2.2.3
git tagretag release-f v22.2.4 release-2v2.2.4
git tagretag release-f v33.0 release-3v3.0
git tagretag release-f v33.0b1 release-3v3.0b1
git tagretag release-f v33.0b2 release-3v3.0b2
git tagretag release-f v33.1 release-3v3.1
git tagretag release-f v33.2 release-3v3.2
git tagretag release-f v33.2.1 release-3v3.2.1
git tagretag release-f v33.3 release-3v3.3
git tagretag release-f v33.3.1 release-3v3.3.1
git tagretag release-f v33.4 release-3v3.4
git tagretag release-f v33.4-RC1 release-3v3.4-RC1
git tagretag release-f v33.4.1 release-3v3.4.1

Remove old, redundant tags:

No Format
git tag -d release-1.0
git tag -d release-1.1
git tag -d release-1.1.1
git tag -d `git tag|grep release`release-1.2
git tag -d release-1.2.1
git tag -d release-2.0
git tag -d release-2.1
git tag -d `gitrelease-2.1.1
git tag|grep fedora`
 -d release-2.1b
git tag -d release-2.2

Remove old, unused branches (all branches but those specifically excluded below will be removed):

No Format
git branch -D `git branch | grep -v master \
| grep -v maintenance-3.4 | grep -v maintenance-2.2 \
| grep -v fcrepo-604 | grep -v fcrepo-644 \
| grep -v fcrepo-748 | grep -v fcrepo-756 \
| grep -v fcrepo-775 | grep -v fcrepo-775`579 \
| grep -v fcrepo-586`

Free unused space in the repository:

No Format
git gc --prune=now
git prune

Avoid 'local uncommitted change' errors later

...

No Format
cp -a 3.refs-cleaned 4.recent-history
cd 4.recent-history

Remove tags and branches prior to 3.3

No Format
git tag -d `git tag|grep -v 3.[34]`
git branch -D maintenance-2.2 fcrepo-579 fcrepo-586

Find the id of the 3.3 tagged commit and parent:

No Format
git log --since=2009-12-18 --until=2009-12-19export lastid=`git show v3.3|grep ^commit|sed 's/...... \(.*\)$/\1/'`
export parentid=`git show $lastid^|grep ^commit|sed 's/...... \(.*\)$/\1/'`

Filter out everything prior:

No Format
export lastid=86b96dec0108af8bc160b84f24276962e0c4e2d5
export parentid=100891ba5fd0f1d3869236047867462355e9f1b1

git filter-branch --parent-filter "sed -e 's/-p $parentid//'" \
--tag-name-filter cat -- --all ^$parentid

git for-each-ref --format='%(refname)' refs/original \
| while read ref; do git update-ref -d "$ref"; done

Re-sign the tags:

No Format
git retag v3.3 v3.3
git retag v3.3.1 v3.3.1
git retag v3.4 v3.4
git retag v3.4-RC1 v3.4-RC1
git retag v3.4.1 v3.4.1

Reclaim unused space:

No Format
git reflog expire --expire=0 --all
git repack -ad
git prune

Find the new id of the 3.3 tagged commit (now the root commit of this repository):

No Format
export lastid=`git show v3.3|grep ^commit|sed 's/...... \(.*\)$/\1/'`

5. Separate Ancient History (fcrepo-before33)

...

No Format
git tag -d `git tag|grep 3.[34]`

git branch -D `git branch | grep -v master \
|grep -v maintenance-3.42.2 | grep -v fcrepo-579 \
|grep -v fcrepo-586`

git reset --hard (parent of lastid)$parentid
git gc --prune=now
git prune

6. Graft Test

Use a copy of the result of step 4:

...

No Format
cp ../5.ancient-history/.git/objects/pack/* \
.git/objects/pack

Create the graft:

No Format
echo $lastid $parentid > .git/info/grafts

Copy historic tags and branches with the following content (where $lastid and $parentid are the actual values set previously):

No Format
$lastid $parentidcat ../5.ancient-history/.git/packed-refs >> .git/packed-refs

Test it (all history, including old tags and branches, should be visible):

No Format
gitk --all

7. Push to GitHub

After creating a project at GitHub:

No Format
git remote add origin git@github.com:fcrepo/projname.git
git push origin master
git push --all
git push --tags