diff options
Diffstat (limited to '_posts/2020-12-06-fossil-to-git.md')
| -rw-r--r-- | _posts/2020-12-06-fossil-to-git.md | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/_posts/2020-12-06-fossil-to-git.md b/_posts/2020-12-06-fossil-to-git.md deleted file mode 100644 index cacb4c9..0000000 --- a/_posts/2020-12-06-fossil-to-git.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: fossil export to git -author: la-ninpre -tags: fossil git tutorial ---- - -i was trying to export my website repo to fossil using suggested method from -[fossil website][1]: - -``` -git fast-export --all | fossil import --git repo.fossil -``` - -[1]:https://www.fossil-scm.org/home/doc/trunk/www/inout.wiki - -but i didn't like that fossil recognizes my email as username and so commit -messages user was `user@example.com` instead of `user`. - -<!--more--> - -i then read a bit about options of `git fast-export` and found `--anonymize` -flag. but it's results weren't satisfying either. - -when i looked on a raw output of `git fast-export`, i noticed that commit author -is specified there as - -``` -author user <user@example.com> -``` - -and then it's flashed in my head: why not pipe git export through sed and just -replace the contents of `<>` with username instead of email. - -so the final command looks like this: - -``` -git fast-export --all | \ - sed -E 's/^((author)|(committer))[[:blank:]]+([[:graph:]]+)[[:blank:]]+(<[[:alnum:]]+@[[:alnum:]]+\.[[:alnum:]]+>)/\1 \4 <\4>/' | \ - fossil import --git repo.fossil -``` - -and it converts - -``` -author user <user@example.com> -``` - -to - -``` -author user <user> -``` - -which is odd, but fine for fossil import. - ---- - -update: i tested this on a bigger repo with older history and found that this -regexp was not perfect, i updated it to handle situations like -`user@example.co.uk` and also names that consist of more than one word. - -``` -git fast-export --all | \ - sed -E 's/^((author)|(committer))[[:blank:]]+([[:graph:]]+([[:blank:]]+[[:graph:]]+)*)[[:blank:]]+(<[[:graph:]]+@[[:graph:]]+(\.[[:graph:]]+)+>)/\1 \4<\4>/' | \ - fossil import --git repo.fossil -``` - -it's veery evil looking horrible thing, but it works. |
