aboutsummaryrefslogtreecommitdiff
blob: 6d59677663759652d90ea72363123f0fea375310 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/bash

f() {
  set -x
  mkdir -p "${output}"/{git,cvs-repo/gentoo-x86/Attic}
  ln -s "${cvsroot}" "${output}/cvs-repo/CVSROOT"
  ln -s "${root}/gentoo-x86/$1" "${output}/cvs-repo/gentoo-x86/$1"
  #ln -s "${root}/gentoo-x86/Attic" "${output}/cvs-repo/gentoo-x86/Attic"
  ln -s "${base}/config" "${output}/config"
  ln -s "${base}/gentoo_mailmap.py" "${output}/gentoo_mailmap.py"
  # Note- this must be canonical path, else it screws up our $Header rewriting.
  pushd "$(readlink -f "${output}" )"
  export PYTHONPATH="${output}${PYTHONPATH:+:${PYTHONPATH}}"
  time cvs2git --options config -v
  cd git
  git init --bare
  # Note we're only pull in blob data here; this intentional- we need to
  # interlace the commit objects together, these git object pools will be
  # be used as alternates for the final repo combination.
  "${base}/rewrite-git-blob.py" \
    ../cvs2svn-tmp/git-blob.dat "${output}/cvs-repo" | \
    tee ../cvs2svn-tmp/rewritten-blob.dat | \
    git fast-import --export-marks=../cvs2svn-tmp/git-blob.idx
  popd
  rm -rf "${final}"
  mv "$output" "${final}"
  set +x
}

[ $# -lt 1 ] && { echo "need an argument..."; exit 1; }

cd "$(readlink -f "$(pwd)")"
base="$(pwd)"
root="${base}/cvs-repo"
cvsroot="${root}/CVSROOT"
repo="${root}/gentoo-x86"
output="${base}/output/${1%,v}"
final="${base}/final/$1"
mkdir -p "$(dirname "${final}")"

rm -rf "${output}"
mkdir -p "${output}"
echo "processing ${1%,v}" >&2
time f "$1" &> "${output}/"log || { echo "failed $1"; exit 1; }
echo "processed  $1" >&2

# Echo the completed pathway if we're in fast mode; this allows
# create-git.sh to get a head start on this repo once we've finished.
[ $# -eq 2 ] && echo "$(readlink -f "$final")" >&$2