ADDED fsl-rebase.scm Index: fsl-rebase.scm ================================================================== --- /dev/null +++ fsl-rebase.scm @@ -0,0 +1,28 @@ +;; given branch and baseline commit generate list of commands to cherry pick commits +;; +;; +;; Usage: fsl-rebase basecommit branch +;; + +(use regex posix) + +(let* ((basecommit (cadr (argv))) + (branch (caddr (argv))) + (cmd (conc "fossil timeline after " basecommit " -n 1000000 -W 0")) + (theregex (conc ;; "^[^\\]]+" + ;; "\\[([\\]]+)\\]\\s+" + ;; "(.*)" + "\\s+\\(.*tags:\\s+" branch + ;; ".*\\)" + ))) + (print "basecommit: " basecommit ", branch: " branch ", theregex: " theregex ", cmd: \"" cmd "\"") + (with-input-from-pipe + cmd + (lambda () + (let loop ((inl (read-line))) + (if (not (eof-object? inl)) + (let ((have-match (string-search theregex inl))) + (if have-match + (print "match: " inl) + (print "no match: " theregex " " inl)) + (loop (read-line))))))))