34 lines
1.2 KiB
Text
34 lines
1.2 KiB
Text
|
Getting started on [[design/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.
|
||
|
|
||
|
[[!format haskell """
|
||
|
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.
|