feat: improve node handling and cmake generation
-
Enhance node property handling
- Add 'all' output format to
get
command for complete node info - Support node property compatibility checks in get command
- Fix node address fuzzy matching and index handling
- Add 'all' output format to
-
Improve cmake generation
- Add
COLLECT_AS_NAMES
support for library collection - Use
SHOW_ERROR
instead ofFATAL_ERROR
for better error handling - Fix nested if/endif structure in cmake output
- Add
-
Documentation improvements
- Fix walk mode description (Left, Root, Right for in-order)
- Add detailed examples for get command output
- Document environment variables with defaults
-
Other improvements
- Update project version handling in CMake
- Fix backwards compatibility for os-platform marks
- Use correct source directory references in CMake
-
new walk variable
WALK_PARENT_NAME
available -
emitted cmake dependency/library now does not use
FATAL_ERROR
but justSHOW_ERROR,
which is slightly better in circumstances, where the cmake script still has to do something (likely in order to fix the error, or show something) -
revert back to zsh as the default shell (needs newest mulle-bashfunctions 6.2.3 for that though), which was lost in the transition to /usr/bin/env mulle-bash
- revert back to zsh as the default shell (needs newest mulle-bashfunctions 6.2.3 for that though), which was lost in the transition to /usr/bin/env mulle-bash
- optimized some lowlevel routines, added a direly needed test
- reduce verbosity or -v and -vv
- fix amalagamted repositories being refetched
- fix amalgamation properly squatting the space for following share node
- exclude local and comment nodetypes from mulle-sourcetree-graph
- new -lxx command to enable database tracing, otherwise sourcetree is much more quiet now
- BREAKING CHANGE filenames like "foo-bar" now produces
FOO__BAR
to distinguish from FooBar which producesFOO_BAR
- mulle-sourcetree-json gained --qualifier --nodetype --marks options to restrict output
- fix fetch no-fetch marks
- improved marks editing
- support no-clobber mark for embedded/almagametes nodes
- improve
find_library
command output for cmake - add
NODE_NAME
to callback environment - added rcopy command for convenience node copies from other projects
- mulle-sourcetree-graph now supports
GRAPH_LEAFS
for prettier more concise output - fix mulle-sourcetree-to-cmake library name when aliases are used
- rename sourcetree::nodemarks to sourcetree::marks for conciseness
- new callback variable
NODE_INDEX
- you can now output the node index in the config file. you can also use this index to address the node in sourcetree commands.
- the db files are now read back in non-random order, which facilitates proper squatting of previous share and no-share-shirk nodes
- new smartmarks make marks more readable and understandavle use -s and %s to display them
- added a plugin system, mainly for the benefit of supermarks so that they can be extended
- new --eval-node option for walk command
- mulle-sourcetree-graph now emits hyperlinks
- the old mulle-sourcetree-export-json command is now mainlined into mulle-sourcetree and is avaliable as the json command
- the var directory now also has a username subdirectory, which fixes bugs when you switch users on the same project
- improved sync speed
- list commands gains a --force-format options, which makes --option additive and --force-format not
- added --varbatim option to list and walk, so that error nodes show up and dont abort the listing
- added mulle-sourcetree-edit-csv and friends
- big function rename to
<tool>
::<file>
::<function>
to make it easier to read hopefully - list has now a -m option
- experimental support for os-specific config files
- implemented having a different config by uname, if so desired (needs reflect on each platform though)
- cmake now used no-dynamic-link and no-static-link for
find_library
- fix wrong zombification, which means that mulle-sourcetree now doesn't refetch a lot of stuff gratuitously anymore HUGE IMPROVEMENT
- removed parallel clean because of an as of yet undiagnosed problem with it
- advertise tool in generated file
- added a diff command
- the status gained --shallow and --deep flags
- the sync operation can perform some node syncs in parallel now (turn off with --serial)
- needs mulle-bashfunctions 4.0.0 now
- runs with zsh when installed, which can double the speed of sourcetree walk operations
- change/fix --no-bequeath --bequeath flags so it does what it promises to do and not the opposite
- make column command optional
- fix indent for includes
- fix FreeBSD ifdef from
BSD4_3
to__FreeBSD__
(BSD4_3
now defined by Apple)
- support a local header overriding the dependency header for stealing sources
- added readwrite flag for writing protecting fetched content
- if
MULLE_SOURCETREE_TO_C_INCLUDE_FILE
is set to DISABLED then #include statements will appear in the #import file. Sames with private.
- add bequeath/no-bequeath to craftorder
- actually use bequeath mode in the walker code
- the default reflection output directory is now cmake/reflect and src/reflect instead of cmake/ and src/
- the default reflection output directory is now cmake/reflect and src/reflect instead of cmake/ and src/
- improved dotdump command
- fix share repositories being put to the graveyard too soon, which made syncs slower
- rewrote wrapping code to also wrap the tag, which will be more used than the branch wrap, which still exists
- sped up the walk a little
- you can now use
MULLE_TAG_OR_BRANCH
to evaluate URLs - improved cmake
find_library
code emitter
- make marks behave additive/subtractive when given as --marks to the add command
- changed to mulle-bashfunctions 2 call convention
- moved to mulle-bashfunctions v2
- ask mulle-env for the location of ETC SHARE and VAR directories
- New marks no-bequeath, no-intermediate-link, no-dynamic-link
- Change echo pervasively to printf as to circumvent surprises if variables start with a minus
- Added wrap command to wrap nodetypes branches and URLs in environment variables
- -—stash-dir is now a synonym for —share-dir, which is deprecated
- Added commands etc-dir, project-dir, var-dir, stash-dir
- Improved cleaning again, added option —config
- Allow nodetype to be wrapped in an environment variable
- mulle-sourcetree-to-c: improved generated info text in headers
- mulle-sourcetree-to-cmake: improved generated info text in headers
- mulle-sourcetree-to-cmake: is now aware of the new no-bequeath mark
- make
NO_CMAKE_SYSTEM_PATH
configurable with mark no-suppress-system-path
- use in-order walk instead of post-order for craftorder
- try to get cmake to find dependency/lib first before searching system dirs (projects need update)
- fix bury code for osx if symlinks are involved (aka /tmp -> /private/tmp)
- mulle-sourcetree-to-c produced header code protects
__has_include
with #ifdef__has_include
- renamed buildorder to craftorder to keep this stringent
- unified output format specification with --output-format
<fmt>
instead of many different switches - improved generation of header files
- allow limited regexp with --match for mark unmark and set
- improved command output
- bugfixed list command quite a bit
- majorly improved sourcetree walk facilities, like walk modes and deduping
- add mark no-bequeath to allow local redefinition of marks without propagation
- redid the sourcetree walker for greater readability and more speed
- commit fix duplicate emission of comment, fix wrong setting name in comment
- there is now a rename command
- more options for listing
- branch and tag are now evaled
- branch and tag are available for expansion in url as
MULLE_BRANCH
andMULLE_TAG
- similiarly fetchoption can be expanded with both and additionally
MULLE_URL
- major performance improvement in the sourcetree buildorder generator
- improved clean code
- a bit less verbose on callback
- fix a verbosity annoyance
- add --no-callback-trace to walk as the output got tedious for buildorder
- fix installer script
- be less harsh if there is no sourcetree
- config files can be scoped to an OS when in dire straits
- aliases need to include the name, so you can determine the lookup order
- buildorder is now using breadth-first for marks and in-order for filename to make things easier
- support various dedupe options
sourcetree::node::printf
can print environment variables now with %v{ENVNAME,,}- many commands lose the unused filter options --marks --nodetypes and --permissions
- there is now a duplicate command for nodes
- node typeguess is a bit better now
- when tar is available, graves are now archived and zipped
- the list command has seen a complete overhaul can now do recursive listings
- the qualifier has been split into a visit qualifier and a descend qualifier
- use .mulle instead of .mulle-sourcetree
- do not require -e anymore
- enable output of filename in status
- use .mulle instead of .mulle-sourcetree
- do not require -e anymore
- enable output of filename in status
- add desecrate command
- keep symlink alive if kept
- keep symlinks as long as the filename doesn't change
- performance improvements due to new mulle-bashfunction use
- update is now called sync, to unconfuse this with mulle-sde update
- experimental support for version checking with new VERSION filter command
- document two environment variables
- use
r_
functions of mulle-bashfunctions 1.8.0
- add no-cmakeadd no-cmakeloader to known flags
- improve usage info a bit
- fix local address getting mangled
- recognize some no-os- variant marks
- fix for mingw
- fix a bug when burying zombies experimentally add fetch-
<uname>
mark - buildorder is now more clever about producing
MULLE_SOURCETREE_STASH_DIR
prefixed paths
- fix update flag and erroneous error message when cleaning
- add knownmarks command, renamed --extended-marks to --extended-mark
- make no-public known
- touch parent configs when config changed
- rewrote update, to enable sharing of symlinked repositories
- add --qualifier option to filter marks more cleverly, you can still use --marks though in limited cases
- add --callback option to buildorder
- fix subprojects dependencies not being properly shared
- improved symlink handling in the walker a lot, which has positive implications through out mulle-sourcetree
- local nodes are not silently augmented with required marks, but instead an error is thrown
- simplified code a little, improved add command semantics
- use
LC_ALL=C
for sort
- remove file from git
- simplify README
- improved brew formula defintion
- need bsdmainutils on debian for column
- fix package dependencies more
- fix homebrew install ruby script
- rename option --marks to --output-marks for buildorder
- rename install to installer, because of name conflict
- Allow output-no- as well as no-output- for list options
- Fix problem with share inside no-share
- remove filename from status output
- fix dox and install
- rename install.sh to install, fix trace bug
- CMakeLists.txt CMakePackage.txt LICENSE Makefile README.md RELEASENOTES.md TODO.md benchmark bin build install.sh movies mulle-column mulle-project mulle-sourcetree mulle-sourcetree-overview.dot mulle-sourcetree-overview.png mulle-sourcetree.sublime-project mulle-sourcetree.sublime-workspace pic.png research src test tmp.62MuALC5 tmp.8TihBMhs tmp.8meNZ6Gb tmp.EaPl8Kw5 tmp.FJzuDhTS tmp.JBcS0N48 tmp.LX05Aq2p tmp.LfE1PWHv tmp.Me6QNGhI tmp.TNU1AnKf tmp.dxYEPghb tmp.gHlgWdiP tmp.mz667t1s tmp.qbWLdiJX tmp.rXe64Rrl tmp.ruRELjzu tmp.tqRbdouz tmp.ueLGLOck tmp.ytNCkWea simplified CMakeLists.txt, simplify printf stuff
- fix some bugs
- add dbstatus command
- considerable speed improvements
- fix test
- fix README
- address prefixed with . is not allowed, as the mulle tools depend on that
- fix CMakeLists.txt
- support no-all-load
- add move command
- fix bug with only-share
- fix two harmless bugs
- share is the new default now
- a bit faster marks checking
- store marks sorted, don't update sourcetrees of symlinked projects
- up the version
- lose outdated and unmaintained migration tool for now, improve fix code, make db local to host
- fix column output
- fix column output
- fix listing bug
- fix column output
- change format to use % like other tools
- nodemarks are now always stored sorted
- don't produce .bak files anymore
- don't produce .bak files anymore
- new -if-missing option
- Various small improvements
- adapt to new mulle-bashfunctions 1.3
- add no-fs mark
- add some more nodemarks for mulle-sde
- changes for mulle-sde
- use no- instead of no, allow only- markers too
- fix stuff for linux
- use evaled url to unique sharable nodes
- Various small improvements
- reorganize support files into own .mulle-sourcetree subdirectory
- callback environment scheme redone
- fix code improved
- run-test without .sh extension now
- forked off from mulle-bootstrap
- rename "scm" to "source", because it fits better.
- added mulle-bootstrap shared to remove .build folders from .bootstrap
- added a convenience interface to edit repositories and embedded_repositories
- forked off from mulle-bootstrap