Comments (8)
Hi @ljmf00
That might mean that changing status is not a detectable conflict that git can resolve. Besides, the task list file loader abstracts the location of the task.
Is there an advantage I'm missing? Tasks are never addressed directly on the filesystem.
from dstask.
Hi @ljmf00
That might mean that changing status is not a detectable conflict that git can resolve. Besides, the task list file loader abstracts the location of the task.
Can you elaborate on that? I guess it is the same since the symbolic link will only be present on the current status and the actual task file doesn't change the path. I'm not sure if this is designed to work on Windows, but I can see a problem with this for filesystems that don't support it, like NTFS. This would be easily resolved by making this feature to be configurable.
Is there an advantage I'm missing? Tasks are never addressed directly on the filesystem.
The advantage I see the most is naturally referencing a task publicly. My use-case for this is the fact that I have my tasks public and if someone wants to track the task, they can do it with only one link I provide. Instead, with the current approach, if the task is not found, they need to manually search on other folders to get, let's say, updated notes related to that task.
from dstask.
How are you actually sharing your tasks? Something like Dropbox? Or a network file share?
from dstask.
How are you actually sharing your tasks? Something like Dropbox? Or a network file share?
No, directly though raw user content provided by GitHub, that directly maps git
structure. I also host a copy of my tasks on IPFS that realistically copy the entire git structure to a folder /files
. https://tasks.lsferreira.net/ . The point is: I can do symbolic links manually, the other way around, but I would have to have a script to do the symbolic links, plus it could break if, e.g. Github raw user content could not handle symbolic links.
from dstask.
Moving tasks into directories is just how things work right now. This way of doing things has some advantages, but isn't right for every use case.
Also, I don't think github raw content handles symlinks. I just tested a symlink, by creating a symlinks directory in my .dstask database, and this was the output in raw content.
../pending/0b2b311f-0bda-42dd-8fda-ad264434b778.yml
Your best bet here is a script that maintains copies of your task files in a single directory at the top level of your task database. Perhaps you could do this with a pre-commit hook:
- Hook identifies changed files
- Hook copies the new file to a directory not maintained by the task db, say, .dstask/TASKS
- Hook invokes
git add file.yaml
on the updated file under TASKS
After the hook is done, the files under TASKS will be synced. Don't forget to handle deletes in your script (dstask rm
). See also this stack overflow question
This dedicated directory of copies can be a stable path, which in turn should yield a stable URL.
PS: That is a cool website! How do you render the table? It looks exactly like the terminal output.
from dstask.
Moving tasks into directories is just how things work right now. This way of doing things has some advantages, but isn't right for every use case.
I totally understand that changing this, could be a breaking change and this functionality may not work on Windows, unfortunately.
Also, I don't think github raw content handles symlinks. I just tested a symlink, by creating a symlinks directory in my .dstask database, and this was the output in raw content.
My point on that was that being the alternative. If the actual files were not symbolic links, that would work perfectly.
../pending/0b2b311f-0bda-42dd-8fda-ad264434b778.yml
Your best bet here is a script that maintains copies of your task files in a single directory at the top level of your task database. Perhaps you could do this with a pre-commit hook:
- Hook identifies changed files
- Hook copies the new file to a directory not maintained by the task db, say, .dstask/TASKS
- Hook invokes
git add file.yaml
on the updated file under TASKSAfter the hook is done, the files under TASKS will be synced. Don't forget to handle deletes in your script (
dstask rm
). See also this stack overflow question
I'm aware of git hooks and I'm probably going to do something similar to that. Thanks for the suggestion :)
PS: That is a cool website! How do you render the table? It looks exactly like the terminal output.
Oh, glad you liked it. For now, this is a bit clunky as I wanted it to simply work. You can check the generator script that I made, in bash: https://github.com/ljmf00/tasks/blob/master/generate-html.sh . I'm going to soon make something fancier tho, to add hyperlinks. Probably I'm going to add some redirection files and index the status to make it sharable. Something like tasks.lsferreira.net/share/#0b2b311f-0bda-42dd-8fda-ad264434b778
and will redirect accordingly.
from dstask.
cool to see an appearence of GH synced tasks in the wild :)
from dstask.
cool to see an appearence of GH synced tasks in the wild :)
Yes!
from dstask.
Related Issues (20)
- Critical task count for warning counts templates but should not HOT 2
- GitHub repo import vs sync HOT 1
- github import cannot update github-imported tasks that no longer come back in queries
- Task operations should amend similar unpushed changes HOT 4
- Request: fish shell completion HOT 2
- Cannot view tasks once they are resolved HOT 3
- Embed shell completion scripts in binary, provide `completion` subcommand HOT 8
- Panic on `dstask show-next` HOT 1
- golint tool is deprecated
- Items with openable URLs should indicate this on the task list HOT 2
- dstask *-completion broken in v0.25 HOT 5
- dstask import-tw or dstask-import tw?
- Colors configuration
- How do task dependencies work? HOT 1
- Can't (seem to figure out how to) modify priority on the CLI HOT 2
- Mark task as abandoned, not done? HOT 1
- "note" command should be "annotate" HOT 1
- bash-completion script is messed up HOT 2
- match package versions between GitHub and pkg.go.dev HOT 1
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 dstask.