repository_restoration - ryzom/ryzomcore GitHub Wiki


title: Repository Restoration description: published: true date: 2023-03-01T05:23:05.476Z tags: editor: markdown dateCreated: 2022-04-14T12:05:07.308Z

This documents the steps used to restore the commit history from the NeL CVS and OpenNeL SVN into the Ryzom Core Git repository.

Convert CVS

cd cvs
find . -type f -name '*.h,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.cpp,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.c,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.txt,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.bat,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.sh,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.dxt,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.dxx,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.dox,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.cfg,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.php,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.py,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.md,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.lua,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.htm,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.html,v' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find ./code -name '*,v' | cvs-fast-export --authormap=../nel_authors.txt > ../converted.fe
cd ..
git init result
cd result
git fast-import < ../converted.fe
git log --format='%aN' | sort -u

nel_authors.txt

antoviaque = Xavier Antoviaque <[email protected]> Europe/Paris
archer = Vincent Archer <[email protected]> Europe/Paris
barbier = Laurent Barbier <[email protected]> Europe/Paris
benslama = benslama <[email protected]> Europe/Paris
berenguier = Lionel Berenguier <[email protected]> Europe/Paris
bernard = Patrick Bernard <[email protected]> Europe/Paris
besson = Matthieu Besson <[email protected]> Europe/Paris
blanchard = David Blanchard <[email protected]> Europe/Paris
boucher = Boris Boucher <[email protected]> Europe/Paris
brigand = Nicolas Brigand <[email protected]> Europe/Paris
cado = Olivier Cado <[email protected]> Europe/Paris
cardouat = Jean Baptiste Cardouat <[email protected]> Europe/Paris
chafik = Sameh Chafik <[email protected]> Europe/Paris
chaouche = Yassine Chaouche <[email protected]> Europe/Paris
corvazier = Cyril Corvazier <[email protected]> Europe/Paris
coutelas = Stéphane Coutelas <[email protected]> Europe/Paris
dayta_at_ucc.gu.uwa.edu.au = Leighton Haynes <[email protected]>
derikson_at_montana.com = Dan Erikson <[email protected]>
distrib = distrib <[email protected]> Europe/Paris
fleury = David Fleury <[email protected]> Europe/Paris
guignot = Sébastien Guignot <[email protected]> Europe/Paris
hanappe = hanappe <[email protected]> Europe/Paris
houlmann = Fabien Houlmann <[email protected]> Europe/Paris
lancon = Vianney Lançon <[email protected]> Europe/Paris
lecroart = Vianney Lecroart <[email protected]> Europe/Paris
ledorze = Stephane Le Dorze <[email protected]> Europe/Paris
legallo = Typhaine Le Gallo <[email protected]> Europe/Paris
legros = Benjamin Legros <[email protected]> Europe/Paris
loic_at_senga.org = Loic Dachary <[email protected]>
meyrignac = Jean-Charles Meyrignac <[email protected]> Europe/Paris
miller = Daniel Miller <[email protected]> Europe/Paris
nevrax = nevrax <[email protected]> Europe/Paris
portier = Pierre Portier <[email protected]> Europe/Paris
puzin = Guillaume Puzin <[email protected]> Europe/Paris
robert = Gabriel Robert <[email protected]>
saffray = Alain Saffray <[email protected]> Europe/Paris
stanislawski = Alexandre Stanislawski <[email protected]> Europe/Paris
stefan.nilsen_at_telia.com = Stefan Nilsen <[email protected]>
tonna = Marjolaine Tonna <[email protected]> Europe/Paris
toutoungis = toutoungis <[email protected]> Europe/Paris
urro = toutoungis <[email protected]> Europe/Paris
valignat = Cedric Valignat <[email protected]> Europe/Paris
viau = Antoine Viau <[email protected]> Europe/Paris
vizerie = Nicolas Vizerie <[email protected]> Europe/Paris
vuarand = Jérôme Vuarand <[email protected]> Europe/Paris
weeklyserver = weeklyserver <[email protected]> Europe/Paris
cvs-fast-export = cvs-fast-export <[email protected]> Europe/Paris

Manually cleanup useless branches and bad tags

Swap commit parents and change date

git reset --hard after_ring_merge
git merge -s ours 883f22f357c13940972403e2e2f0ef18fffe8084 -m "Old message" --no-signoff
git reset --hard $(git commit-tree -p HEAD^2 -p HEAD^1 -m "New commit message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Tuesday, 10 January 2006 6:39:05 PM" git commit --amend --no-signoff --date="Tuesday, 10 January 2006 6:39:05 PM" -m "Merge NeL CVS (HEAD to RING)" --author="Ryzom Core <[email protected]>"
git merge 8d685ce9a6924bbde6e64f153bda131774740edd -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Wednesday, 11 January 2006 2:32:45 PM" git commit --amend --no-signoff --date="Wednesday, 11 January 2006 2:32:45 PM" -m "Merge NeL CVS (HEAD)" --author="Ryzom Core <[email protected]>"
git branch temp/merge-cvs-1
git checkout temp/merge-cvs-1
git reset --hard after_ring_head_merging_1
git merge -s ours feature/merge-cvs -m "Old message" --no-signoff
git reset --hard $(git commit-tree -p HEAD^2 -p HEAD^1 -m "New commit message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Wednesday, 11 January 2006 4:05:13 PM" git commit --amend --no-signoff --date="Wednesday, 11 January 2006 4:05:13 PM" -m "Merge NeL CVS (RING to HEAD)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs
git reset --hard temp/merge-cvs-1
# git merge 3c5c4840be8359c0308b1f2a2748f91d3d7c6b40 -m "Temp message" --no-signoff
# GIT_COMMITTER_DATE="Monday, 13 February 2006 10:18:23 AM" git commit --amend --no-signoff --date="Monday, 13 February 2006 10:18:23 AM" -m "Merge NeL CVS (RING)" --author="Ryzom Core <[email protected]>"
git branch temp/merge-cvs-2
git checkout temp/merge-cvs-2
git reset --hard 5bdba5b353ed7b47e312ea9a6d3fd6e32fcf32e9
git merge -s ours last_head_to_ring_merge -m "Old message" --no-signoff
git reset --hard $(git commit-tree -p HEAD^2 -p HEAD^1 -m "New commit message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Monday, 13 February 2006 7:41:09 PM" git commit --amend --no-signoff --date="Monday, 13 February 2006 7:41:09 PM" -m "Merge NeL CVS (RING to HEAD)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs
# git merge temp/merge-cvs-2 -m "Old message" --no-signoff
# GIT_COMMITTER_DATE="Monday, 13 February 2006 7:41:09 PM" git commit --amend --no-signoff --date="Monday, 13 February 2006 7:41:09 PM" -m "Merge NeL CVS (RING)" --author="Ryzom Core <[email protected]>"
# git reset --hard feature/merge-cvs
git checkout temp/merge-cvs-2
git merge -s ours feature/merge-cvs -m "Old message" --no-signoff
git reset --hard $(git commit-tree -p HEAD^2 -p HEAD^1 -m "New commit message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Monday, 13 February 2006 7:41:09 PM" git commit --amend --no-signoff --date="Monday, 13 February 2006 7:41:09 PM" -m "Merge NeL CVS (RING)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs
git merge temp/merge-cvs-2
git merge a26540750485aacc51dc79a0a0afdce01aaf7dde  -m "Old message" --no-signoff
GIT_COMMITTER_DATE="Wednesday, 31 May 2006 11:46:59 AM" git commit --amend --no-signoff --date="Wednesday, 31 May 2006 11:46:59 AM" -m "Merge NeL CVS (RING)" --author="Ryzom Core <[email protected]>"
git branch temp/merge-cvs-3
git checkout temp/merge-cvs-3
git reset --hard effcaa517935ad0fddaf73a79688af2feba38aed
git merge -s ours feature/merge-cvs -m "Old message" --no-signoff
git reset --hard $(git commit-tree -p HEAD^2 -p HEAD^1 -m "New commit message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Wednesday, 31 May 2006 2:19:03 PM" git commit --amend --no-signoff --date="Wednesday, 31 May 2006 2:19:03 PM" -m "Merge NeL CVS (HEAD to RING)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs
git merge temp/merge-cvs-3
git branch temp/merge-cvs-4
git checkout temp/merge-cvs-4
git reset --hard 3476facf3b7e70de42638a82f66a71bb673ef58c
git merge -s ours before_merge_ring_aplha_to_head_3 -m "Old message" --no-signoff
git reset --hard $(git commit-tree -p HEAD^2 -p HEAD^1 -m "New commit message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Wednesday, 12 July 2006 4:37:22 PM" git commit --amend --no-signoff --date="Wednesday, 12 July 2006 4:37:22 PM" -m "Merge NeL CVS (HEAD to RING)" --author="Ryzom Core <[email protected]>"
# git checkout feature/merge-cvs
# git checkout temp/merge-cvs-4
git merge -s ours feature/merge-cvs -m "Old message" --no-signoff
git reset --hard $(git commit-tree -p HEAD^2 -p HEAD^1 -m "New commit message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Wednesday, 12 July 2006 4:37:22 PM" git commit --amend --no-signoff --date="Wednesday, 12 July 2006 4:37:22 PM" -m "Merge NeL CVS (HEAD)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs
git merge temp/merge-cvs-4

Alternative better merge route

git branch feature/merge-cvs-head
git checkout feature/merge-cvs-head
git reset --hard 0f0eb3fc0c2667d4063d8479271222878f4e1303
git reset --hard $(git commit-tree -p 33d3e73ead1bd2bab719a474be477c1e3ef5288d -p 883f22f357c13940972403e2e2f0ef18fffe8084 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Tuesday, 10 January 2006 6:39:05 PM +0100" git commit --amend --no-signoff --date="Tuesday, 10 January 2006 6:39:05 PM +0100" -m "Merge of ring branch into HEAD" --author="Boris Boucher <[email protected]>"
git merge -s ours 0f0eb3fc0c2667d4063d8479271222878f4e1303 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Tuesday, 10 January 2006 6:39:05 PM +0100" git commit --amend --no-signoff --date="Tuesday, 10 January 2006 6:39:05 PM +0100" -m "Merge of ring branch into HEAD" --author="Boris Boucher <[email protected]>"
git merge 8d685ce9a6924bbde6e64f153bda131774740edd -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Wednesday, 11 January 2006 2:32:45 PM +0100" git commit --amend --no-signoff --date="Wednesday, 11 January 2006 2:32:45 PM +0100" -m "Merge NeL CVS (HEAD)" --author="Ryzom Core <[email protected]>"
git branch feature/merge-cvs-ring
git checkout feature/merge-cvs-ring
git reset --hard cc52aa6d946bc9cee4b025931396bac8820c0838
git reset --hard $(git commit-tree -p 883f22f357c13940972403e2e2f0ef18fffe8084 -p feature/merge-cvs-head -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Wednesday, 11 January 2006 4:05:13 PM +0100" git commit --amend --no-signoff --date="Wednesday, 11 January 2006 4:05:13 PM +0100" -m "Result of merge of HEAD into Ring branch" --author="Boris Boucher <[email protected]>"
git merge -s ours cc52aa6d946bc9cee4b025931396bac8820c0838 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Wednesday, 11 January 2006 4:05:13 PM +0100" git commit --amend --no-signoff --date="Wednesday, 11 January 2006 4:05:13 PM +0100" -m "Result of merge of HEAD into Ring branch" --author="Boris Boucher <[email protected]>"
git checkout feature/merge-cvs-head
git merge last_head_to_ring_merge -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Thursday, 9 February 2006 6:13:41 PM +0100" git commit --amend --no-signoff --date="Thursday, 9 February 2006 6:13:41 PM +0100" -m "Merge NeL CVS (HEAD)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs-ring
git merge 3c5c4840be8359c0308b1f2a2748f91d3d7c6b40 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Monday, 13 February 2006 10:18:23 AM +0100" git commit --amend --no-signoff --date="Monday, 13 February 2006 10:18:23 AM +0100" -m "Merge NeL CVS (RING)" --author="Ryzom Core <[email protected]>"
git branch temp/merge-cvs-1
git checkout temp/merge-cvs-1
git reset --hard 5bdba5b353ed7b47e312ea9a6d3fd6e32fcf32e9
git reset --hard $(git commit-tree -p feature/merge-cvs-ring -p feature/merge-cvs-head -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Monday, 13 February 2006 7:41:09 PM +0100" git commit --amend --no-signoff --date="Monday, 13 February 2006 7:41:09 PM +0100" -m "result of merge HEAD => RING" --author="Boris Boucher <[email protected]>"
git merge -s ours 5bdba5b353ed7b47e312ea9a6d3fd6e32fcf32e9 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Monday, 13 February 2006 7:41:09 PM +0100" git commit --amend --no-signoff --date="Monday, 13 February 2006 7:41:09 PM +0100" -m "result of merge HEAD => RING" --author="Boris Boucher <[email protected]>"
git checkout feature/merge-cvs-ring
git merge temp/merge-cvs-1
git checkout feature/merge-cvs-head
git merge 64cf16bc819c4cd0321f799c90db5b7cf8975832 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Monday, 29 May 2006 3:16:11 PM +0100" git commit --amend --no-signoff --date="Monday, 29 May 2006 3:16:11 PM +0100" -m "Merge NeL CVS (HEAD)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs-ring
git merge e5c2e4b906cd2da7fe8763e4f00ac3600474a275 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Tuesday, 30 May 2006 2:10:42 PM +0100" git commit --amend --no-signoff --date="Tuesday, 30 May 2006 2:10:42 PM +0100" -m "Merge NeL CVS (RING)" --author="Ryzom Core <[email protected]>"
git checkout temp/merge-cvs-1
git reset --hard effcaa517935ad0fddaf73a79688af2feba38aed
git reset --hard $(git commit-tree -p feature/merge-cvs-head -p feature/merge-cvs-ring -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Wednesday, 31 May 2006 2:19:03 PM +0100" git commit --amend --no-signoff --date="Wednesday, 31 May 2006 2:19:03 PM +0100" -m "Merge of all changed made in the RING_ALPHA branch into HEAD" --author="Boris Boucher <[email protected]>"
git merge -s ours effcaa517935ad0fddaf73a79688af2feba38aed -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Wednesday, 31 May 2006 2:19:03 PM +0100" git commit --amend --no-signoff --date="Wednesday, 31 May 2006 2:19:03 PM +0100" -m "Merge of all changed made in the RING_ALPHA branch into HEAD" --author="Boris Boucher <[email protected]>"
git checkout feature/merge-cvs-head
git merge temp/merge-cvs-1
git checkout feature/merge-cvs-head
git merge 9a2d324008ce8f6b3a2faef94c6e536438c3de36 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Wednesday, 12 July 2006 11:27:22 AM +0100" git commit --amend --no-signoff --date="Wednesday, 12 July 2006 11:27:22 AM +0100" -m "Merge NeL CVS (HEAD)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs-ring
git merge 7b6b52bc1cf451d43585623b6d191e2ff44696d7 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Monday, 10 July 2006 6:23:56 PM +0100" git commit --amend --no-signoff --date="Monday, 10 July 2006 6:23:56 PM +0100" -m "Merge NeL CVS (RING)" --author="Ryzom Core <[email protected]>"
git checkout temp/merge-cvs-1
git reset --hard 3476facf3b7e70de42638a82f66a71bb673ef58c
git reset --hard $(git commit-tree -p feature/merge-cvs-head -p feature/merge-cvs-ring -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Wednesday, 12 July 2006 4:37:22 PM" git commit --amend --no-signoff --date="Wednesday, 12 July 2006 4:37:22 PM" -m "Result of merge 3 from RING_ALPHA into HEAD" --author="Boris Boucher <[email protected]>"
git merge -s ours 3476facf3b7e70de42638a82f66a71bb673ef58c -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Wednesday, 12 July 2006 4:37:22 PM" git commit --amend --no-signoff --date="Wednesday, 12 July 2006 4:37:22 PM" -m "Result of merge 3 from RING_ALPHA into HEAD" --author="Boris Boucher <[email protected]>"
git checkout feature/merge-cvs-head
git merge temp/merge-cvs-1
git checkout feature/merge-cvs-head
git merge 66b11fc917588a87470fbbc2899a1eb7261de85d -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Wednesday, 13 September 2006 5:04:55 PM +0100" git commit --amend --no-signoff --date="Wednesday, 13 September 2006 5:04:55 PM +0100" -m "Merge NeL CVS (HEAD)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs-ring
git merge 28b98bf557c82284f36ee98c464c2cbcce82d702 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Thursday, 7 September 2006 6:34:55 PM +0100" git commit --amend --no-signoff --date="Thursday, 7 September 2006 6:34:55 PM +0100" -m "Merge NeL CVS (RING)" --author="Ryzom Core <[email protected]>"
git checkout temp/merge-cvs-1
git reset --hard c8c289010a1474bfa35cd01d13f66a2b93bc9dbe
git reset --hard $(git commit-tree -p feature/merge-cvs-head -p feature/merge-cvs-ring -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Thursday, 14 September 2006 6:56:54 PM +0100" git commit --amend --no-signoff --date="Thursday, 14 September 2006 6:56:54 PM +0100" -m "Result of merge 4 from RING_ALPHA into HEAD" --author="Olivier Cado <[email protected]>"
git merge -s ours c8c289010a1474bfa35cd01d13f66a2b93bc9dbe -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Thursday, 14 September 2006 6:56:54 PM +0100" git commit --amend --no-signoff --date="Thursday, 14 September 2006 6:56:54 PM +0100" -m "Result of merge 4 from RING_ALPHA into HEAD" --author="Olivier Cado <[email protected]>"
git checkout feature/merge-cvs-head
git merge temp/merge-cvs-1
git checkout feature/merge-cvs-head
git merge eeb3ab1457fd3fc8854cab9bbef5a1f1141f6e6b -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Friday, 27 October 2006 3:23:06 PM +0100" git commit --amend --no-signoff --date="Friday, 27 October 2006 3:23:06 PM +0100" -m "Merge NeL CVS (HEAD)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs-ring
git merge d12e6a097e9b1e663117890f212df8e3d13d55ab -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Friday, 27 October 2006 2:57:06 PM +0100" git commit --amend --no-signoff --date="Friday, 27 October 2006 2:57:06 PM +0100" -m "Merge NeL CVS (RING)" --author="Ryzom Core <[email protected]>"
git checkout temp/merge-cvs-1
git reset --hard 41a72d8325f1fbfe682a5786cd07e5c849617a10
git reset --hard $(git commit-tree -p feature/merge-cvs-head -p feature/merge-cvs-ring -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Tuesday, 31 October 2006 5:10:51 PM +0100" git commit --amend --no-signoff --date="Tuesday, 31 October 2006 5:10:51 PM +0100" -m "Little additions and modifications merged from BRANCH_RING_ALPHA into head branch" --author="David Blanchard <[email protected]>"
git merge -s ours 41a72d8325f1fbfe682a5786cd07e5c849617a10 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Tuesday, 31 October 2006 5:10:51 PM +0100" git commit --amend --no-signoff --date="Tuesday, 31 October 2006 5:10:51 PM +0100" -m "Little additions and modifications merged from BRANCH_RING_ALPHA into head branch" --author="David Blanchard <[email protected]>"
git checkout feature/merge-cvs-head
git merge temp/merge-cvs-1
git checkout temp/merge-cvs-1
git reset --hard ef1a88666e031cf011947832d4421d717906eedd
git reset --hard $(git commit-tree -p feature/merge-cvs-ring -p feature/merge-cvs-head -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Tuesday, 31 October 2006 6:22:17 PM +0100" git commit --amend --no-signoff --date="Tuesday, 31 October 2006 6:22:17 PM +0100" -m "Merge from HEAD" --author="David Blanchard <[email protected]>"
git merge -s ours ef1a88666e031cf011947832d4421d717906eedd -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Tuesday, 31 October 2006 6:22:17 PM +0100" git commit --amend --no-signoff --date="Tuesday, 31 October 2006 6:22:17 PM +0100" -m "Merge from HEAD" --author="David Blanchard <[email protected]>"
git checkout feature/merge-cvs-ring
git merge temp/merge-cvs-1
git checkout feature/merge-cvs-head
git merge 7dfea36c37096313f5cf5bd20c588eb85f224a37 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Tuesday, 14 November 2006 5:24:19 PM +0100" git commit --amend --no-signoff --date="Tuesday, 14 November 2006 5:24:19 PM +0100" -m "Merge NeL CVS (HEAD)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs-ring
git merge 388d5394e5c50391a05d8418af8363edb3ff3168 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Tuesday, 14 November 2006 2:02:36 PM +0100" git commit --amend --no-signoff --date="Tuesday, 14 November 2006 2:02:36 PM +0100" -m "Merge NeL CVS (RING)" --author="Ryzom Core <[email protected]>"
git checkout temp/merge-cvs-1
git reset --hard e86db87a56d233e97ea04391e6942c575bf02f12
git reset --hard $(git commit-tree -p feature/merge-cvs-head -p feature/merge-cvs-ring -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Wednesday, 6 December 2006 6:22:52 PM +0100" git commit --amend --no-signoff --date="Wednesday, 6 December 2006 6:22:52 PM +0100" -m "Result of merge 6 from RING_ALPHA" --author="Boris Boucher <[email protected]>"
git merge -s ours e86db87a56d233e97ea04391e6942c575bf02f12 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Wednesday, 6 December 2006 6:22:52 PM +0100" git commit --amend --no-signoff --date="Wednesday, 6 December 2006 6:22:52 PM +0100" -m "Result of merge 6 from RING_ALPHA" --author="Boris Boucher <[email protected]>"
git checkout feature/merge-cvs-head
git merge temp/merge-cvs-1
git checkout feature/merge-cvs-head
git merge f42b58bd3708cdac135b7072afa0939be2f11e63 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Friday, 5 January 2007 11:30:39 AM +0100" git commit --amend --no-signoff --date="Friday, 5 January 2007 11:30:39 AM +0100" -m "Merge NeL CVS (HEAD)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs-ring
git merge efa720cb59dcb8c4da974c820114981df1c64b2a -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Thursday, 25 January 2007 2:22:46 PM +0100" git commit --amend --no-signoff --date="Thursday, 25 January 2007 2:22:46 PM +0100" -m "Merge NeL CVS (RING)" --author="Ryzom Core <[email protected]>"
git checkout temp/merge-cvs-1
git reset --hard aaad630868c8d7ab3a1e3535aaf0c5f55584cbcd
git reset --hard $(git commit-tree -p feature/merge-cvs-head -p feature/merge-cvs-ring -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Thursday, 1 February 2007 5:24:41 PM +0100" git commit --amend --no-signoff --date="Thursday, 1 February 2007 5:24:41 PM +0100" -m "Result of merge 7 from RING_ALPHA into HEAD" --author="Boris Boucher <[email protected]>"
git merge -s ours aaad630868c8d7ab3a1e3535aaf0c5f55584cbcd -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Thursday, 1 February 2007 5:24:41 PM +0100" git commit --amend --no-signoff --date="Thursday, 1 February 2007 5:24:41 PM +0100" -m "Result of merge 7 from RING_ALPHA into HEAD" --author="Boris Boucher <[email protected]>"
git checkout feature/merge-cvs-head
git merge temp/merge-cvs-1
git checkout feature/merge-cvs-head
git merge dfdad6416d837164d48450bc2e363c5cc50ee11b -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Tuesday, 27 March 2007 4:01:47 PM +0100" git commit --amend --no-signoff --date="Tuesday, 27 March 2007 4:01:47 PM +0100" -m "Merge NeL CVS (HEAD)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs-ring
git merge e9939d0e59d8959bdf80a532a070b6f0c9b5ff50 -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Thursday, 22 March 2007 4:51:04 PM +0100" git commit --amend --no-signoff --date="Thursday, 22 March 2007 4:51:04 PM +0100" -m "Merge NeL CVS (RING)" --author="Ryzom Core <[email protected]>"
git checkout feature/merge-cvs-head
git branch feature/merge-cvs
git checkout feature/merge-cvs
git merge feature/merge-cvs-ring

Resolve conflicts. Id with latest date. Pick everything from the RING branch.

git commit -m "Temp message"
GIT_COMMITTER_DATE="Tuesday, 27 March 2007 4:01:47 PM +0100" git commit --amend --no-signoff --date="Tuesday, 27 March 2007 4:01:47 PM +0100" -m "Merge NeL CVS (RING into HEAD)" --author="Ryzom Core <[email protected]>"

Make a copy of the repo

Normalize line endings

Add .gitattributes

git add .gitattributes
git add --renormalize .
git commit -m "Renormalize"
GIT_COMMITTER_DATE="Tuesday, 27 March 2007 4:01:47 PM +0100" git commit --amend --no-signoff --date="Tuesday, 27 March 2007 4:01:47 PM +0100" -m "Renormalize" --author="Ryzom Core <[email protected]>"

Add OpenNeL

git rm -r *
git rm .gitignore

Add .gitattributes again Extract the OpenNeL repo Remove media Remove snowballs2/client/data Remove .cvsignore

find . -type f -exec stat \{} --printf="%y\n" \; | grep 2007 | sort -n -r | head -n 1
git add --all
git add --renormalize .
git commit -m "OpenNeL"
GIT_COMMITTER_DATE="2007-11-25 19:16:19 +0800" git commit --amend --no-signoff --date="2007-11-25 19:16:19 +0800" -m "OpenNeL SVN 0.5.0" --author="OpenNeL <[email protected]>"
find . -type f -exec stat \{} --printf="%y\n" \; | grep 2008 | sort -n -r | head -n 1
git add --all
git add --renormalize .
git commit -m "OpenNeL"
GIT_COMMITTER_DATE="2008-03-29 18:05:01 +0800" git commit --amend --no-signoff --date="2008-03-29 18:05:01 +0800" -m "OpenNeL SVN 0.6.1" --author="OpenNeL <[email protected]>"
git add --all
git add --renormalize .
git commit -m "OpenNeL"
GIT_COMMITTER_DATE="2008-08-17 02:51:22 +0800" git commit --amend --no-signoff --date="2008-08-17 02:51:22 +0800" -m "OpenNeL SVN r712" --author="OpenNeL <[email protected]>"

Before the amend, try and check if anything needs to be changed to the proper encoding

find . -type f -name '*.h' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.cpp' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.c' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.txt' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.bat' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.sh' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.dxt' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.dxx' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.dox' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.cfg' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.php' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.py' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.md' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.lua' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.htm' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.html' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;

Next

Move all tags under nevrax/

git tag -l | while read t; do git tag nevrax/$t $t; git tag -d $t; done

Add nice new tags for old OpenNeL and NeL versions.

Insert the possible copy of NeL 0.7.0...

Next we'll rebase the early commits from the Ryzom Server SVN repository on top of the current commit. Ensure everything is normalized, and in the correct folder from root.

Then rebase everything on core up to the EOL commit.

Add OpenNeL SVN

Disregard the previous.

Thanks to the SourceForge Support and Engineering teams for recovering the OpenNeL SVN repository!

svnrdump dump svn://svn.code.sf.net/p/nel/code > opennel_r722_sf_svnrdump.bak

WSL doesn't work when loading the dump with svnadmin.

svnadmin: E000013: Can't move 'svn_opennel/db/revprops/0/svn-EbLqpC' to 'svn_opennel/db/revprops/0/0': Permission denied

From native command line.

choco install svn
svnadmin create svn_opennel
svnadmin load svn_opennel < opennel_r722_sf_svnrdump.bak
svnserve -d -r svn_opennel

New native command line.

git svn clone svn://localhost --tags=tags --trunk=trunk --branches=branches --branches=personal -s git_opennel2
git log --format='%aN' | sort -u

opennel_authors.txt

Kaetemi = Kaetemi <[email protected]>
acemtp = acemtp <[email protected]>
kaetemi = kaetemi <[email protected]>
kervala = kervala <[email protected]>
mattr = mattr <[email protected]>
mattraykowski = mattraykowski <[email protected]>
rtsan = rtsan <[email protected]>
spex = spex <[email protected]>
spex_sf = spex_sf <[email protected]>
git svn clone -A ..\opennel_authors.txt svn://svn.code.sf.net/p/nel/code --tags=tags --trunk=trunk --branches=branches --branches=personal -s git_opennel3

Back in WSL. Delete the web folder because it needs to be reset.

cd git_opennel3
git reset --hard

Add our .gitattributes file. Don't commit it.

# git filter-branch --tree-filter 'git add --renormalize .' -- --all
# cd /dev/shm
# git clone /mnt/x/wsl/cvsexp3/sfnel/git_opennel3
# cd git_opennel3
# git filter-branch --tree-filter 'cp /mnt/x/wsl/cvsexp3/sfnel/.gitattributes .gitattributes; git add --renormalize .; rm .gitattributes' -- --all

Renormalize the whole git history. Remove media.

git filter-branch --tree-filter 'cp /mnt/x/wsl/cvsexp3/sfnel/.gitattributes .gitattributes; git add --renormalize .; rm .gitattributes' -- --all
git filter-branch -f --tree-filter 'rm -rf media; rm -rf snowballs2/client/data; rm -rf client/data' -- --all
# git filter-branch -f --tree-filter 'cp /mnt/x/wsl/cvsexp3/sfnel/.gitattributes .gitattributes; git reset' -- --all
# git filter-branch -f --tree-filter 'git add --renormalize .; rm .gitattributes' -- --all
git filter-branch -f --tree-filter 'cp /mnt/x/wsl/cvsexp3/sfnel/.gitattributes .gitattributes' -- --all

From Windows.

git reset --hard
git add --renormalize .
git commit -m temp
git filter-branch -f --tree-filter "git add --renormalize ." -- --all

Back in WSL.

git reset --hard origin/trunk
git filter-branch -f --tree-filter 'git add --renormalize .; rm .gitattributes' -- --all

Fix Snowballs classes branch.

git reset --hard origin/branch_snowballs_classes
git filter-branch --tree-filter 'mkdir -p /mnt/x/wsl/cvsexp3/sfnel/tempdir; mv * /mnt/x/wsl/cvsexp3/sfnel/tempdir; mkdir snowballs2; mv /mnt/x/wsl/cvsexp3/sfnel/tempdir/* snowballs2/'

Add tag "snb_root" on where we fork. Delete all files to force a good reset.

git branch temp/snowballs2
git reset --hard snb_root

/mnt/x/wsl/cvsexp3/sfnel/tempdir

cp -r nel /mnt/x/wsl/cvsexp3/sfnel/tempdir/nel
cp -r nelns /mnt/x/wsl/cvsexp3/sfnel/tempdir/nelns
cp -r tool /mnt/x/wsl/cvsexp3/sfnel/tempdir/tool
cp -r web /mnt/x/wsl/cvsexp3/sfnel/tempdir/web
cp .cvsignore /mnt/x/wsl/cvsexp3/sfnel/tempdir/.cvsignore
cp acinclude.m4 /mnt/x/wsl/cvsexp3/sfnel/tempdir/acinclude.m4
git reset --hard temp/snowballs2
git filter-branch -f --tree-filter 'cp -r /mnt/x/wsl/cvsexp3/sfnel/tempdir/nel nel; cp -r /mnt/x/wsl/cvsexp3/sfnel/tempdir/nelns nelns; cp -r /mnt/x/wsl/cvsexp3/sfnel/tempdir/tool tool; cp -r /mnt/x/wsl/cvsexp3/sfnel/tempdir/web web; cp /mnt/x/wsl/cvsexp3/sfnel/tempdir/.cvsignore .cvsignore; cp /mnt/x/wsl/cvsexp3/sfnel/tempdir/acinclude.m4 acinclude.m4'
git branch temp/newsnowballs

Reset to the BRANCHED: commit.

git reset --hard 696548ee8f63a17fdc0d634e77c20b8e854e9585

Parent this to snb_root.

git reset --hard $(git commit-tree -p 2bc7a34cf4b8a702750bfc48dacbad0ebc59bab3 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Tuesday, 1 January 2008 1:09:15 AM +0000" git commit --amend --no-signoff --date="Tuesday, 1 January 2008 1:09:15 AM +0000" -m "BRANCHED: SNB-34: Convert snowballs code into classes" --author="Kaetemi <[email protected]>"

Cherry pick the changes. Rewrite from branch to last.

git cherry-pick --allow-empty 696548ee8f63a17fdc0d634e77c20b8e854e9585..temp/newsnowballs
sudo add-apt-repository ppa:git-core/ppa -y
sudo apt update
sudo apt upgrade git -y
git --version
git branch temp/snb_root
git checkout temp/snb_root
git reset --hard snb_root
git checkout master
git branch tmp/baddate
GIT_COMMITTER_NAME="Kaetemi" GIT_COMMITTER_EMAIL="[email protected]" git rebase --committer-date-is-author-date --reapply-cherry-picks --empty=keep --force-rebase temp/snb_root tmp/baddate
git branch branch_snowballs_classes
git branch trunk
git checkout trunk
git reset --hard origin/trunk
git branch temp/temp
git checkout temp/temp
git reset --hard origin/branch_mtr_nostlport
git branch branch_mtr_nostlport
git reset --hard origin/sfb
git branch sfb
git reset --hard origin/spex
git branch spex
git checkout trunk

Tag the two tags. Then remove all remotes and all junk branches.

Working in "X:\wsl\cvsexp3\result". Also keep "X:\wsl\cvsexp3\sfnel.gitattributes"

Next

Attach OpenNeL onto CVS. Renormalize CVS first with new .gitattributes. Copy initial commit with author Nevrax <support@ryzom dev>, to remove attribution of any in-between changes from any author. Same as follows.

Then attach the Private Server history up to the Core split. Copy the initial commit with author Nevrax [email protected]. Then ours-merge the initial commit. Then merge the top commit.

Do the same with the Ryzom Core splice from initial to hgeol, but use author Ryzom Core [email protected], since it is mixed with commits from the NeL Community and the Private Ryzom SVN.

Fix bad author mapping

First need to force rewrite author "toutoungis [email protected]" to "urro [email protected]", since it was not correct in the initial author table.

https://stackoverflow.com/questions/58263216/how-to-change-commit-author-for-multiple-commits-using-filter-branch

https://git-scm.com/docs/gitmailmap#_examples

mailmap.txt

Fix up some missing accents too.

git filter-repo --mailmap ../mailmap.txt --force

On both the CVS archive and the work in progress merging.

Archival conversion of the NeL CVS up to March 2007.

Continue

git checkout feature/merge-cvs

Update .gitattributes.

git add --renormalize .
GIT_COMMITTER_DATE="Tuesday, 27 March 2007 4:01:47 PM +0100" git commit --amend --no-signoff --date="Tuesday, 27 March 2007 4:01:47 PM +0100" -m "Renormalize" --author="Ryzom Core <[email protected]>"

Delete old tags and branches.

Add opennel_svn as remote.

git branch feature/merge-opennel-svn
git checkout feature/merge-opennel-svn

Copy initial commit with author Nevrax <support@ryzom dev>, to remove attribution of any in-between changes from any author. Then ours-merge the initial commit. Then merge the top commit.

git reset --hard 6c99f5f9fc68a6a6c3173b5607cb1445538c6d19
git reset --hard $(git commit-tree -p e50a66b4ac934180932bedd286c05979fa98a7e8 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Thursday, 28 June 2007 8:15:43 AM +0100" git commit --amend --no-signoff --date="Thursday, 28 June 2007 8:15:43 AM +0100" -m "OpenNeL SVN r1" --author="Nevrax <[email protected]>"

Add .gitattributes back in.

cp ../sfnel/.gitattributes .gitattributes
git add --renormalize .
git add .gitattributes
GIT_COMMITTER_DATE="Thursday, 28 June 2007 8:15:43 AM +0100" git commit --amend --no-signoff --date="Thursday, 28 June 2007 8:15:43 AM +0100" -m "OpenNeL SVN r1" --author="Nevrax <[email protected]>"

Try and check if anything needs to be changed to the proper encoding, then amend again. (Fix them first!)

find . -type f -name '*.h' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.cpp' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.c' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.txt' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.bat' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.sh' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.dxt' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.dxx' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.dox' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.cfg' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.php' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.py' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.md' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.lua' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.htm' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;
find . -type f -name '*.html' -execdir iconv -f WINDOWS-1252 -t UTF-8 '{}' -o '{}'.tmp \; -execdir mv '{}'.tmp '{}' \;

Merge in the initial commit.

git merge -s ours 6c99f5f9fc68a6a6c3173b5607cb1445538c6d19 -m "Temp message" --no-signoff --allow-unrelated-histories
GIT_COMMITTER_DATE="Thursday, 28 June 2007 8:15:43 AM +0100" git commit --amend --no-signoff --date="Thursday, 28 June 2007 8:15:43 AM +0100" -m "OpenNeL SVN r1" --author="Nevrax <[email protected]>"

Do the nostlport merge

git merge d035ff0f3ab827c3bab8e911fbe0d635bd041d90
GIT_COMMITTER_DATE="Tuesday, 20 November 2007 1:19:11 PM +0100" git commit --amend --no-signoff --date="Tuesday, 20 November 2007 1:19:11 PM +0100" -m "Merge OpenNeL SVN" --author="OpenNeL <[email protected]>"

May need to fix some conflicts with the encoding fixup first.

git branch temp/temp
git checkout temp/temp
git reset --hard 5e9fb6e5f0370800bf94ee1f555599e9680d14ba
git reset --hard $(git commit-tree -p 6e1d94564cadbef59a879fddd89688dc4f39a72d -p 4911409f5e2d34073c87d715e17b35d53fc1f5e3 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Tuesday, 20 November 2007 7:47:50 PM +0100" git commit --amend --no-signoff --date="Tuesday, 20 November 2007 7:47:50 PM +0100" -m "MERGE: this is the result of merging branch_mtr_nostlport with trunk (NEL-16)" --author="mattraykowski <[email protected]>"
cp ../sfnel/.gitattributes .gitattributes
git add --renormalize .
git add .gitattributes
GIT_COMMITTER_DATE="Tuesday, 20 November 2007 7:47:50 PM +0100" git commit --amend --no-signoff --date="Tuesday, 20 November 2007 7:47:50 PM +0100" -m "MERGE: this is the result of merging branch_mtr_nostlport with trunk (NEL-16)" --author="mattraykowski <[email protected]>"

Check encodings again, and amend. Then merge with ours strategy.

git merge -s ours 5e9fb6e5f0370800bf94ee1f555599e9680d14ba -m "Temp message" --no-signoff
GIT_COMMITTER_DATE="Tuesday, 20 November 2007 7:47:50 PM +0100" git commit --amend --no-signoff --date="Tuesday, 20 November 2007 7:47:50 PM +0100" -m "MERGE: this is the result of merging branch_mtr_nostlport with trunk (NEL-16)" --author="mattraykowski <[email protected]>"
git checkout feature/merge-opennel-svn
git merge temp/temp

Merge the final commit.

git merge 98f7b832561ed0f18808580abe56b523b7f02ec7
GIT_COMMITTER_DATE="Monday, 1 September 2008 4:53:57 PM +0100" git commit --amend --no-signoff --date="Monday, 1 September 2008 4:53:57 PM +0100" -m "Merge OpenNeL SVN" --author="OpenNeL <[email protected]>"

Check encodings again too, but careful since only needs to fix newly added files.

Tag the snowballs classes branch as feature/snowballs_classes

Remove the remote.

Blame doesn't work reliably

Does it need another jump merging in the older commit to entirely bypass the initial commit?

git branch temp/test-remerge
git reset --hard 52f969da4e83343f370d520f7378815caa0b8809
git reset --hard $(git commit-tree -p 52f969da4e83343f370d520f7378815caa0b8809 -p 4f8813dd00b59242a8d956a4baef52e03b2344ae -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Thursday, 28 June 2007 8:15:43 AM +0100" git commit --amend --no-signoff --date="Thursday, 28 June 2007 8:15:43 AM +0100" -m "OpenNeL SVN r1" --author="Nevrax <[email protected]>"

Or just need to push the timestamps a little.

Works for welcome_service, but not for u_driver. Both list the import commit, though.

So if the file got changed in the branch... It follows the history of that branch entirely, and ends up with the wrong initial commit.

# Initial commits with no parent
6c99f5f9fc68a6a6c3173b5607cb1445538c6d19
# Unmerged merge commits

.git-blame-ignore-revs doesn't seem to work either.

Cause.

If the primary parent doesn't have any changes, git blame entirely uses the secondary parent. Is this a bug or a feature?

Git blame prefers changes in the secondary parent if there were no changes in the primary parent before a merge.

Solution.

Create another ancestry. Merge in each merge commit (the new ones made before). Detect all git blame that reference the wrong commit (the legacy manual merge or parentless initial commit, not the remerged ones made before). Rollback the merge commit. Tack a comment onto each modified file, depending on file type. Then merge again.

So. Write a script to do this.

Alternatively.

Make another ancestry. Merge the pre-merge. Then do a reverse merge on the final blank merge. Then the final merge becomes the primary, adn the real pre-merge becomes the secondary parent...

Test sequence

git branch temp/test-another
git checkout temp/test-another
git reset --hard 4f8813dd00b59242a8d956a4baef52e03b2344ae
git merge 52f969da4e83343f370d520f7378815caa0b8809 --no-ff --m temp
GIT_COMMITTER_DATE="Thursday, 28 June 2007 8:15:43 AM +0100" git commit --amend --no-signoff --date="Thursday, 28 June 2007 8:15:43 AM +0100" -m "OpenNeL SVN r1" --author="Nevrax <[email protected]>"
git reset --hard $(git commit-tree -p HEAD^2 -p HEAD^1 -m temp "HEAD^{tree}")
GIT_COMMITTER_DATE="Thursday, 28 June 2007 8:15:43 AM +0100" git commit --amend --no-signoff --date="Thursday, 28 June 2007 8:15:43 AM +0100" -m "OpenNeL SVN r1" --author="Nevrax <[email protected]>"
git merge 48c73f1824467858eaa11a79acaaeaf6f58cefea --no-ff --m temp
git reset --hard $(git commit-tree -p HEAD^2 -p HEAD^1 -m temp "HEAD^{tree}")

Nah. Alternative doesn't work.

Amending the commit also works to make it follow through the primary parent. No need to rollback. So just one script that adds all the markers. Then roll the markers back after the merge.

Rather, if the secondary parent is identical to the merge commit, git blame will only follow the secondary parent... Order of parents doesn't seem to matter to git blame!

So. Write the script.

git branch temp/test-blame
git checkout temp/test-blame
git reset --hard blame/merge-11
python ../blametag.py

Shouldn't give any bad blame.

git merge feature/merge-opennel-svn -m temp --no-ff --no-signoff
python ../blametag.py

Should list now.

git commit -a -m temp --amend --no-signoff

Works.

Steps

git reset --hard
git branch feature/blame-nevrax
git checkout feature/blame-nevrax
git reset --hard blame/base
git reset --hard blame/merge-1
git reset --hard $(git commit-tree -p c2c8979c20c1ca93dd606a5083c3281078d6fdb2 -p f67c70dec264de63bcadf57cfc4a7f002ea716e9 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Tuesday, 10 January 2006 6:39:05 PM +0100" git commit --amend --no-signoff --date="Tuesday, 10 January 2006 6:39:05 PM +0100" -m "Merge of ring branch into HEAD" --author="Boris Boucher <[email protected]>"
python ../blametag.py
git reset --hard blame/merge-2
git reset --hard $(git commit-tree -p c5c0e0c2fd340db4814a9bd67c3505913cb37c63 -p 4427fac718988645b4c4ef4a5bb5073bba6465d1 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Wednesday, 11 January 2006 4:05:13 PM +0100" git commit --amend --no-signoff --date="Wednesday, 11 January 2006 4:05:13 PM +0100" -m "Result of merge of HEAD into Ring branch" --author="Boris Boucher <[email protected]>"
python ../blametag.py
git reset --hard blame/merge-4
git reset --hard $(git commit-tree -p d925ffa97826598c46243e38c4c185a452e0df37 -p 833076c8f0a73d9c6a36e0f04cbad5db6d41ae8f -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Wednesday, 31 May 2006 2:19:03 PM +0100" git commit --amend --no-signoff --date="Wednesday, 31 May 2006 2:19:03 PM +0100" -m "Merge of all changed made in the RING_ALPHA branch into HEAD" --author="Boris Boucher <[email protected]>"
python ../blametag.py
git commit -a -m temp --amend --no-signoff
GIT_COMMITTER_DATE="Wednesday, 31 May 2006 2:19:03 PM +0100" git commit --amend --no-signoff --date="Wednesday, 31 May 2006 2:19:03 PM +0100" -m "Merge of all changed made in the RING_ALPHA branch into HEAD" --author="Boris Boucher <[email protected]>"

Might need to replicate the old sequence, and run ../blametag.py and amend on every step... Just clone each existing merge. Check if merge-4 works...

File module_common.cpp attributes changes to merge-4-orig in the current checkout, let's see if it's fixed after merge 5.

git reset --hard blame/merge-5
git reset --hard $(git commit-tree -p 4302fe8e11da1ad50d4a26fce2de2e4b393e3878 -p f8ea04159df6cfe9720240a0e962cf96f13b05e8 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Wednesday, 12 July 2006 4:37:22 PM" git commit --amend --no-signoff --date="Wednesday, 12 July 2006 4:37:22 PM" -m "Result of merge 3 from RING_ALPHA into HEAD" --author="Boris Boucher <[email protected]>"
python ../blametag.py
git commit -a -m temp --amend --no-signoff
(repeat amend)
git reset --hard blame/merge-6
git reset --hard $(git commit-tree -p f9fbf8e2511bc4064c173aa8151fbf3b627a0799 -p a01909d71084215e3e349e3bc3744bd0ddc07708 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Thursday, 14 September 2006 6:56:54 PM +0100" git commit --amend --no-signoff --date="Thursday, 14 September 2006 6:56:54 PM +0100" -m "Result of merge 4 from RING_ALPHA into HEAD" --author="Olivier Cado <[email protected]>"
python ../blametag.py
git commit -a -m temp --amend --no-signoff
(repeat amend)
git reset --hard blame/merge-7
git reset --hard $(git commit-tree -p b942d79ed91d7c681ee158e9a85dee274be1f7ef -p b1730bcc6777ffae96b6f625f9138eb73f0e8fd8 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Tuesday, 31 October 2006 5:10:51 PM +0100" git commit --amend --no-signoff --date="Tuesday, 31 October 2006 5:10:51 PM +0100" -m "Little additions and modifications merged from BRANCH_RING_ALPHA into head branch" --author="David Blanchard <[email protected]>"
python ../blametag.py
git commit -a -m temp --amend --no-signoff
(repeat amend)
git reset --hard blame/merge-8
git reset --hard $(git commit-tree -p f0ef5b5a2588987bfaf2d3da3f9e16f1031bd9c0 -p 56949c7d4d9950ba04ba22fc7cf0f6d2018a27fc -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Tuesday, 31 October 2006 6:22:17 PM +0100" git commit --amend --no-signoff --date="Tuesday, 31 October 2006 6:22:17 PM +0100" -m "Merge from HEAD" --author="David Blanchard <[email protected]>"
python ../blametag.py
git commit -a -m temp --amend --no-signoff
(repeat amend)
git reset --hard blame/merge-9
git reset --hard $(git commit-tree -p 2e645a26d1346b948dc5097ab5cdd63bb437fa30 -p 88570a747f3b292f5231877f611f6ee5b9d80865 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Wednesday, 6 December 2006 6:22:52 PM +0100" git commit --amend --no-signoff --date="Wednesday, 6 December 2006 6:22:52 PM +0100" -m "Result of merge 6 from RING_ALPHA" --author="Boris Boucher <[email protected]>"
python ../blametag.py
git commit -a -m temp --amend --no-signoff
(repeat amend)
git reset --hard blame/merge-10
git reset --hard $(git commit-tree -p 8a32e5cf1fdcbd2ca16c70f8cd0e5a3f1be0cbbe -p aea325e5ca07f90556691eb77cc52267f308dffe -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Thursday, 1 February 2007 5:24:41 PM +0100" git commit --amend --no-signoff --date="Thursday, 1 February 2007 5:24:41 PM +0100" -m "Result of merge 7 from RING_ALPHA into HEAD" --author="Boris Boucher <[email protected]>"
python ../blametag.py
git commit -a -m temp --amend --no-signoff
(repeat amend)
git reset --hard e50a66b4ac934180932bedd286c05979fa98a7e8
git reset --hard $(git commit-tree -p e2144c5efce15a6e0b2448c1b6e795709a01d6db -p e50a66b4ac934180932bedd286c05979fa98a7e8 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Tuesday, 27 March 2007 4:01:47 PM +0100" git commit --amend --no-signoff --date="Tuesday, 27 March 2007 4:01:47 PM +0100" -m "Merge NeL CVS (RING into HEAD)" --author="Ryzom Core <[email protected]>"
python ../blametag.py
git commit -a -m temp --amend --no-signoff
(repeat amend)
git reset --hard 4f8813dd00b59242a8d956a4baef52e03b2344ae
git reset --hard $(git commit-tree -p def4e6761e34f2b394b6cb612dc2f364952bc018 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Thursday, 28 June 2007 8:15:43 AM +0100" git commit --amend --no-signoff --date="Thursday, 28 June 2007 8:15:43 AM +0100" -m "OpenNeL SVN r1" --author="Nevrax <[email protected]>"
python ../blametag.py
git commit -a -m temp --amend --no-signoff
(repeat amend)
git reset --hard blame/merge-11
git reset --hard $(git commit-tree -p e023aedb5643fa035e63cbb97c9aa97ad860d5ef -p 52f969da4e83343f370d520f7378815caa0b8809 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Thursday, 28 June 2007 8:15:43 AM +0100" git commit --amend --no-signoff --date="Thursday, 28 June 2007 8:15:43 AM +0100" -m "OpenNeL SVN r1" --author="Nevrax <[email protected]>"
python ../blametag.py
git commit -a -m temp --amend --no-signoff
(repeat amend)
git reset --hard blame/merge-12
git reset --hard $(git commit-tree -p 5b86ff878468e363ef87922be2a33766ce4ab3a4 -p 09876d7cafd2d7802289279f5010a79c1efe4de5 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Tuesday, 20 November 2007 7:47:50 PM +0100" git commit --amend --no-signoff --date="Tuesday, 20 November 2007 7:47:50 PM +0100" -m "MERGE: this is the result of merging branch_mtr_nostlport with trunk (NEL-16)" --author="mattraykowski <[email protected]>"
python ../blametag.py
git commit -a -m temp --amend --no-signoff
(repeat amend)
git reset --hard feature/merge-opennel-svn
git reset --hard $(git commit-tree -p a7c0314200b9d7872a24e44131aa33c467c6ac04 -p 48c73f1824467858eaa11a79acaaeaf6f58cefea -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Monday, 1 September 2008 4:53:57 PM +0100" git commit --amend --no-signoff --date="Monday, 1 September 2008 4:53:57 PM +0100" -m "Merge OpenNeL SVN" --author="OpenNeL <[email protected]>"
python ../blametag.py
git commit -a -m temp --amend --no-signoff
(repeat amend)
git reset --hard feature/merge-opennel-svn
git reset --hard $(git commit-tree -p efa247e950f50ade9ed143f6179a47af042dfa68 -m "Temp message" "HEAD^{tree}")
GIT_COMMITTER_DATE="Monday, 1 September 2008 4:53:57 PM +0100" git commit --amend --no-signoff --date="Monday, 1 September 2008 4:53:57 PM +0100" -m "Merge OpenNeL SVN" --author="OpenNeL <[email protected]>"
# python ../blametag.py

Try ignore revs

.git-blame-ignore-revs

# Bulk file move
e99f875c62be43aa53b2c84fab0c4f630c9bf636

# Maintenance commits
5a7b94fa02badafb7867bd09ff5585257051b3e2
efa247e950f50ade9ed143f6179a47af042dfa68
a7c0314200b9d7872a24e44131aa33c467c6ac04
5b86ff878468e363ef87922be2a33766ce4ab3a4
def4e6761e34f2b394b6cb612dc2f364952bc018
e2144c5efce15a6e0b2448c1b6e795709a01d6db
8a32e5cf1fdcbd2ca16c70f8cd0e5a3f1be0cbbe
2e645a26d1346b948dc5097ab5cdd63bb437fa30
f0ef5b5a2588987bfaf2d3da3f9e16f1031bd9c0
b942d79ed91d7c681ee158e9a85dee274be1f7ef
f9fbf8e2511bc4064c173aa8151fbf3b627a0799
4302fe8e11da1ad50d4a26fce2de2e4b393e3878
d925ffa97826598c46243e38c4c185a452e0df37
c5c0e0c2fd340db4814a9bd67c3505913cb37c63

Not very useful for now.

Output

The output of this process is here.

https://github.com/kaetemi/opennel

https://github.com/kaetemi/opennel/blame/feature/blame-opennel-svn/nel/src/sound/driver/sound_driver.h

Part 2

⚠️ **GitHub.com Fallback** ⚠️