This project aims to set up an uniform way to manage multiple projects, trying to support many different SCMs and modalities.
Every project can be a separate entity, but sharing configurations and general rules with many other projects.
In case there is an original project of our personal fork, we should be able to see detailed diffs and statistics about it.
[#A] define exactly what is the scope of the project, or it might end up trying to be too smart
This tool should be mainly used for developer, to manage graphs easily
define what should be the user interface, as CLI and as cmdloop
take from mr.developer or write from scratch some code to abstract the SCM used
define a grammar/syntax for a configuration file format
write doc in RST format
gerrit might be something which can be included (even if it’s a Java program)check if
check when sqlite was included in Python
define a way to make it py3k compatible (possibly with the same code-base)
In this case we want to access directy to the internals, might be faster and more powerful but the API might not be stable.
We can use libgit2 and its python bindings to access to git repositories from git.
using the SVN api with some examples in Python
Switching to project should be done withing Emacs (calling shell commands) too with the following:
- always store buffers and window configurations used
- restore buffers (maybe in new frames) and window configurations
- show and analyse the time spent in each of the projects (possibly using org-mode and its advanced timing mechanisms)
Keep a database storing all the bugs filled, and create org-mode-like links to be able to jump them easily.
- this project might be a good candidate to test the actor model for some real concurrency, see for example pyzmq
- instead of reinventing the wheel and try to create another SCM-agnostic generic system, just make it very easy to create generic alias for commonly used operations
- have a way to generate graphviz graphs of the project tree in SCM-agnostic way
- store all the statistics and the history of the work in an internal database, using sqlite for example