@@ -214,10 +214,41 @@ reset="$(tput sgr0)" fossil diff -N "$@" | sed "s/^+.*$/$green&$reset/" | 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 which pkg_chk &>/dev/null && alias pkg_chk="MAKEFLAGS= pkg_chk" which pkg_rolling-replace &>/dev/null &&