CODESH (COllaborative DEvelopment SHell) is an automatic persistent logbook for sessions of personal command line work. It records what and how is being done, for private use/reuse and for sharing selected parts with collaborators. It is an intelligent shell that automatically logs user's shell sessions. Sessions are uniquely tagged and stored in local or distributed backend repositories (ASCII flat file or Subversion or CVS based) and can be extracted and reproduced at any time by the user who created the session or by collaborators located anywhere in the world.
| Tags | Communications File Sharing Scientific/Engineering Shells Utilities Information Management |
|---|---|
| Implementation | Python Unix Shell |
Recent releases


Changes: The test suite was streamlined to produce shorter and more focused output, making it easier to scan the results from each test. The code for the various backends was cleaned up. A problem when extracting flex sessions (the log-modify-and-replay mechanism of CODESH) from remote CVS backends was fixed.


Changes: The focus of this version is the distributed computing (remote) aspects of CODESH. A new subdirectory "remote" is introduced. It contains sample scripts showing how to set up remote (client/server based) Subversion, CVS, and ASCII backends, along with detailed documentation. The scripts can be used not only to set up CODESH backends, but general purpose remote Subversion or CVS pserver repositories as well. As usual, extreme caution and studying the documentation in advance is recommended before setting up servers.


Changes: This version improves the user experience by hardening the frontend and the Subversion, CVS, and ASCII backends. The checks on user input are extended, and now users are warned in basically all situations if they try to run commands with wrong number of parameters. The verifications if the backend repositories are up and running when the users try to access them are extended with dynamic checks, approaching complete coverage.


Changes: This version takes full advantage of the improved user interface for handling tags. The test suite has been simplified substantially and made more elegant by using the new feature of supplying on the command line not only full tag names, but shorter substrings as long as they are unique.


Changes: This version improves the user interface for handling tags. Now users can supply on the command line not only full tag names, but shorter substrings as long as they are unique. In case of ambiguities, a list of matching tags to chose from is returned. The taking of snapshots is improved: the user is asked before taking a snapshot if it exceeds 2048 kB, and the possibility to enter an infinite loop if the repository is located below the snapshot directory is avoided.
- All comments
Recent commentsRe: Unfortunate CVS Dependency
> Many engineers have nothing to do with,
> and in fact avoid, CVS. You have a very
> nice tool here. Why do I need CVS to
> use it? Why can't it simply dump its
> logs in a directory and only use CVS if
> I explicitly ask it to. And if it uses
> CVS, shouldn't it also use Subversion
> and any other popular versioning system.
> Best would be if all that were optional
> and anyone could use the basic
> functionality that only your tool
> provides.
Dear Richard,
Thank you for your comment, you bring up a very important point. In the course of developing the CODESH architecture we have separated the persistency backend (codeshb.py) from the user interface so they are basically independent. I will add that we are currently working on a subversion backend and users will be able to choose by changing a configuration parameter at strartup. As you say, one could have an option to just dump ascii files which are easy to port and introduce no dependencies. I'll take this as a feature request for our to-do list, thanks for the suggestion.
I will add that our architecture hides cvs (or future backends) from the user, so you don't need to know much about cvs - with its not very simple syntax - to start using it.
Best, Dimitri Bourilkov
Unfortunate CVS Dependency
Many engineers have nothing to do with, and in fact avoid, CVS. You have a very nice tool here. Why do I need CVS to use it? Why can't it simply dump its logs in a directory and only use CVS if I explicitly ask it to. And if it uses CVS, shouldn't it also use Subversion and any other popular versioning system. Best would be if all that were optional and anyone could use the basic functionality that only your tool provides.