Comments (3)
Grit uses multitrees, which are diamond-free by definition. The constraint ensures that the set of all nodes reachable from any node induces a valid tree. Multitrees share some nice properties with regular DAGs (the potential for adding alternate contexts, reusing hierarchies), but unlike DAGs—which can quickly become very complex and hard to read—multitrees can be more easily 'digested' by viewing their induced tree substructures one at a time.
So cross links are fine, but given a tree
[ ] one (1)
├──[ ] two (2)
│ └──[ ] three (3)
└──[ ] four (4)
creating a link from 1 to 3, or from 4 to 2, is an invalid multitree operation and will result in the "diamonds are not allowed" error.
More on multitrees: http://adrenaline.ucsd.edu/kirsh/Articles/In_Process/MultiTrees.pdf
from grit.
This seems like a slightly silly limitation considering diamonds are valid in a DAG. Maybe it's a current limitation because of the way the graph is drawn horizontally?
from grit.
Ok I think I understand. So multitrees are not really meant for representing dependencies? My thinking is because theres often a scenario where two tasks with the same parent may depend on the same child, but this would be invalid since it creates a diamond
from grit.
Related Issues (20)
- Task "Submodules"
- Brew formula HOT 2
- Question: Bullet Journaling Usecase HOT 3
- Dockerfile HOT 3
- The name `grit`.
- Packaged for Arch Linux in the AUR HOT 1
- $XDG_CONFIG_HOME is ignored on macOS
- import -p=<n> doesn't work HOT 2
- Windows builds HOT 1
- Build fails on Windows Subsystem for Linux HOT 1
- nil pointer error when link to non-existent task HOT 1
- Task order
- I love it HOT 1
- Backup and cloud sync HOT 1
- List all nodes
- [PANIC] When trying to link node from non-date root to date node 0
- tree --progress: Feature to save space from children of checked nodes
- all commands panic on mac
- [Feature Request] Export trees to indented lines
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from grit.