Table of Contents

CVS to Git Migration for PLD Linux using GitHub

This page describes initial plan using GitHub as PLD Linux packages primary repository, things described here are just historical view of the plan, not current state.

PLD Linux Github Organization is currently used to mirror git.pld-linux.org

This page describes migration of PLD Linux CVS Packages repository to github.

Organization in github as been done: https://github.com/pld-linux, later referred as Organization.

PLD Developers wishing to join Organization, should create account in GitHub, and Organization Owners will add them to Team named Developers.

Each developer should set their <login>@pld-linux.org as e-mail alias in GitHub (Account Settings→Email Addresses)

Migration Tasks

Migration test was done using cvs2git, that is not incremental (but semi-incremental achieved with rsync.log).

You can clone from test import at carme:~glen/git/pld-git/git-import (via ssh)

Scripts used to do the import: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/git-migration/

git cvs convert todo

We decided to try github hosting:

Unsorted

Changes to Developer

Adoption of new commit message formatting rules

Action Before (CVS) After (Git)
add new package ../builder -a PKG or cvs add PKGDIR Org Owner in github has to create it
rename package send rename request to cvsadmin@ rename in github yourself
delete package remove all sources from cvs package should be pushed to pld-linux-obsolete and Org Owner in github has to delete it in pld-linux
update from remote
cvs up
git pull --rebase
checkin single file
cvs ci file.foo
git add file.foo; git commit; git push
checkin all changes
cvs ci
git commit -a; git push
find string from all packages
grep -r oauth_ SPECS
use web search. Sample Search
list all pkgs
cvs ls packages
use json api. sample
see old patches look into Attic/ in cvsweb
git log --pretty=format: --name-only --diff-filter=D
restore old removed file look into Attic/ in cvsweb and
cvs up -jHEAD -j$DEAD_REV and commit
1. get sha:
git log -- FILE

2. get contents:

git show HASH:FILE

Other Readling:

fedpkg

commands that work and have alternatives

./builder -g PACKAGE
fedpkg co PACKAGE; cd PACKAGE; fedpkg sources
./builder -ba PACKAGE
fedpkg local
./compile.sh PACKAGE
fedpkg compile --short-circuit
./repackage.sh PACKAGE
fedpkg install --short-circuit
./check-unused-files.py PACKAGE
fedpkg unused-patches
cvs diff
fedpkg diff
./builder -bs PACKAGE
fedpkg srpm
rm -f *; cvs up
fedpkg clean

todo