gnu-arch-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnu-arch-users] Release announcement: Fai (pyaba) 0.2


From: Aaron Bentley
Subject: [Gnu-arch-users] Release announcement: Fai (pyaba) 0.2
Date: Mon, 19 Jul 2004 09:05:43 -0400
User-agent: Mozilla Thunderbird 0.5 (X11/20040309)

Hi all,
I'm pleased to announce the first official release of Fai, the Friendly Arch Interface. It's a commandline util that's intended to be easier to use than tla, for newbies and seasoned hands alike. See the README below for more.

You can get it here:
address@hidden/fai--dist--0.2-patch-6
http://sourcecontrol.net/~abentley/archives/tlasrc/

It ships with its own version of PyArch, but it's just a temporary fork. I'm committed to working with David Allouche to merge my changes into the PyArch mainline.

Enjoy!

Aaron

From the README:


FAI (The Friendly Arch Interface) 0.2 (aka pyaba)

Fai is a commandline-based Arch tool with interactive prompting. It aims to be a better commandline user interface than tla. By combining functionality that is handled as separate commands in tla, it aims to have smaller command
set than tla.

What's there now?
  * Compatibility with aba commands
  * Alias expansion (no prefix required for native commands)
  * Automatic aliases; these determine the revision by performing functions
  * tla fallthrough (to be removed when redundant)
  * smart colorizing (which can be turned off)
  * prompts that can be configured to take defaults

  Commands: ('fai help -n' for a full list)
* get: an improved get that can use URLs and automatically create local mirrors.
  * revisions: a combination of logs, missing, revisions, cachedrevs, etc.
               also provides:
--missing-from (which of my revisions are missing from the target?)
                 --modified (which revisions modified this file?)
                 --modified (which revisions modified this file?)
                 --ancestry (iterates through the tree's patchlog ancestry)
  * commit: prompts on empty commits, missing log messages
* update: updates to the requested revision, while retaining local changes.
            prompts to change tree version.
  * revert: undo command that can undo specific types of changes
  * changes: can take two arguments, making delta redundant

What's coming soon?
  More native implementations of the common commands.
An init command that will do my-id, make-archive, archive-setup, init-tree
  Option defaults are high on the list, too.


Aren't you that guy who wrote that aba thing?
Yeah. aba's nice and all, but POSIX shell isn't my favourite language. It's not geared at producing reliable, unambiguous programs. I won't say "impossible", since the original Arch implementation was in shell. Python (like many other languages) has facilities that make it *easy* to write dependable programs. Things like variable scope, string manipulation and exceptions are not to be sneezed at.

But I wrote an aba command!
  Fai supports aba's external commands, which make up 78% of the aba tree
anyway. So Fai (like aba) is extensible in any language, but Python commands
  have full access to Fai's tools.

What about pyaba?
Fai is just a new name for pyaba. I hate programs that are named for their programming language. The language is a tool, not your program's raison d'etre. (If the language *is* your program's reason for being, don't write it!) On the other hand, PyArch makes sense, because it's Python-specific.

NOTES
revisions --modified works on filenames, not inventory ids, so it doesn't track renames.

revisions --modified FILE:LINE uses the line's contents to check for matches, so it will generate false matches. It's also kinda slow, since it gets the changesets for revisions that modify a file.

the tdate alias behaves strangely if no day is specified.

Aaron
--
Aaron Bentley
Director of Technology
Panometrics, Inc.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]