diff --git a/zshrc b/zshrc index 81af5d5..825aa3d 100644 --- a/zshrc +++ b/zshrc @@ -216,6 +216,37 @@ if which fossil &>/dev/null; then sed "s/^-.*$/$red&$reset/" | less -FRX fi } + + git2fl() { + local gitdir=$(git rev-parse --show-toplevel)/.git + local repo=$(fossil info | awk '/^repository:/ { print $2 }') + + [ -z "$repo" ] && repo="$1" + + [ -n "$repo" -a -f "$repo" ] && + local incremental="--incremental" + + [ -d "$gitdir/git.marks" ] && + local importmarks_git="--import-marks=$gitdir/git.marks" + + if [ -d "$gitdir/fossil.marks" ]; then + local importmarks_fossil + importmarks_fossil="--import-marks $gitdir/fossil.marks" + fi + + LC_ALL=C git fast-export \ + --signed-tags=warn-strip \ + --export-marks=$gitdir/git.marks \ + $=importmarks_git \ + --all | + LC_ALL=C fossil import \ + --git \ + $=incremental \ + --rename-master trunk \ + --export-marks $gitdir/fossil.marks \ + $=importmarks_fossil \ + $repo + } fi # pkgsrc does not like MAKEFLAGS including -j