GithubHelp home page GithubHelp logo

task-git's Introduction

task-git.sh

task-git.sh is a wrapper around Taskwarrior's task that places the task database in version control, and generates commits each time the task database is altered.

Usage

  1. Navigate to your Taskwarrior data directory (usually in ~/.task) and type git init. If you plan to push to a remote, go ahead and add your remote now.
  2. Add alias task=/path/to/task-git/task-git.sh to your .bashrc or .profile. If you want to push to a remote, then the alias should be alias task=/path/to/task-git/task-git.sh --task-git-push. Make sure you source the .bashrc or .profile.
  3. Run chmod +x /path/to/task-git/task-git.sh.
  4. Use task as normal; when run, the Taskwarrior database files will be committed to version control.

It is recommended to use the Taskwarrior database only on one machine, as you will be resolving conflicts if using the same task database on multiple machines.

License

task-git.sh Copyright (C) 2013 Kosta Harlan

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

task-git's People

Contributors

kostajh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

task-git's Issues

taskfiles-git

I'm not sure exactly how this works in conjunction with taskd sync, but one function I see missing from the taskwarrior arsenal, is an easy way to "sync" everything else; The .taskrc configuration and everything south of ~/.task/, which could contain project files, wiki files or what-have-you.

One possible exception might be the actual task data files, as taskd sync handles that really well, but if it's not a conflict, the data files should be included in the repo too.

This may not be what task-git was born to do exactly, but a simple method of keeping rc, themes, and any other related files, under version control and easy to clone, would make a lot of sense for those who wanted to have multiple install locations with all the same stuff.

task-git-hook

This is related to issue #3 (taskfiles-git) in that it deals with syncing everything under ~/.task/ that isn't already synced by taskserver, like .taskrc and hooks and everything but .data files. It's different from #3 in that it runs as a hook, and shows a dialog ("there are changes to the .task/ files, sync them now?") and uses git to keep things in sync, with version control.

This is more and more important as more hooks, scripts, logs and external commands are used with a given taskwarrior installation. Presumably, of you go to the trouble of configuring colors, or reports or contexts or anything else, on one machine, that you would probably want the same enhancements on other machines that you use. Accomplishing and maintianing multiple, synced, tw installations is not simple, without trampling taskd, and this hook, task-git-hook, could fill that gap.

minor adjustment to task-git.sh

In order for it to be used with my system, I had to change one line from
DATA_DIR=${DATA[1]}

to

eval DATA_DIR=${DATA[1]}

For some reason, it didn't seem to like the tilde in the path, but after the eval it worked fine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.