Getting started on adjusted branches, taking a top-down and
bottom-up approach. Yesterday I worked on improving the design. Today,
built a git mktree
interface that supports recursive tree generation and
filtering, which is the low-level core of what's needed to implement the
adjusted branches.
To test that, wrote a fun program that generates a git tree with all the filenames reversed.
import Git.Tree
import Git.CurrentRepo
import Git.FilePath
import Git.Types
import System.FilePath
main = do
r <- Git.CurrentRepo.get
(Tree t, cleanup) <- getTree (Ref "HEAD") r
print =<< recordTree r (Tree (map reverseTree t))
cleanup
reverseTree :: TreeContent -> TreeContent
reverseTree (TreeBlob f m s) = TreeBlob (reverseFile f) m s
reverseTree (RecordedSubTree f s l) = NewSubTree (reverseFile f) (map reverseTree l)
reverseFile :: TopFilePath -> TopFilePath
reverseFile = asTopFilePath . joinPath . map reverse . splitPath . getTopFilePath
Also, fixed problems with the Android, Windows, and OSX builds today. Made a point release of the OSX dmg, because the last several releases of it will SIGILL on some hardware.