From 8d962aabf74c42c3afdc38f2f85fa7b06fd04ef0 Mon Sep 17 00:00:00 2001 From: la-ninpre Date: Tue, 19 Apr 2022 00:24:23 +0300 Subject: reimplement website using shell scripts major change, i know. now i'm using ssg and rssg by roman zolotarev. okay, well, not exactly. ssg is modified to generate pages for gemini too. it's hard to maintain two different things simultaneously. bye-bye jekyll! --- _posts/2020-12-06-fossil-to-git.md | 68 -------------------------------------- 1 file changed, 68 deletions(-) delete mode 100644 _posts/2020-12-06-fossil-to-git.md (limited to '_posts/2020-12-06-fossil-to-git.md') 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`. - - - -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 -``` - -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 -``` - -to - -``` -author 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. -- cgit v1.2.3