threads / announce / 318

[ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

Subject: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

## tl;dr

15 messages between Apr 26, 2005 and Apr 26, 2005.

replies: 14people: 11as markdown or json

Petr Baudis· Apr 26, 2005, 03:24 UTC · lore
  Hello,
  here goes Cogito-0.8, my SCMish layer over Linus Torvald's git tree
history tracker. This package was formerly called git-pasky, however
this release brings big changes. The usage is significantly different,
as well as some basic concepts; the history changed again (hopefully the
last time?) because of fixing dates of some old commits. The .git/
directory layout changed too.
  Upgrading through pull is possible, but rather difficult and requires
some intimacy with both git, git-pasky and Cogito. So probably the best
way to go is to just get cogito-0.8 tarball at
	http://www.kernel.org/pub/software/scm/cogito/
or
	ftp://ftp.kernel.org/pub/software/scm/cogito/
build and install it, and do
	cg-clone rsync://rsync.kernel.org/pub/scm/cogito/cogito.git
  Yes, this is a huge change. No, I don't expect any further changes of
similar scale. I think the new interface is significantly simpler _and_
cleaner than the old one.
  First for the concept changes. There is no concept of tracking
anymore; you just do either cg-pull to just fetch the changes, or
cg-update to fetch them as well as merge them to your working tree.
Even more significant change is that Cogito does not directly support
local branches anymore - git fork is gone, you just go to new directory
and do
	cg-init ~/path/to/your/original/repository

(or cg-clone, which will try to create a new subdirectory for itself). This now acts as a separate repository, except that it is hardlinked with the original one; therefore you get no additional disk usage. To get new changes to it from the original repository, you have to cg-update origin. If you decide you want to merge back, go to the original repository, add your new one as a branch and pull/update from it.

  As for the interface changes, you will probably find out on your own;
cg-help should be of some help. All the scripts now start with 'cg-',
and you should ignore the 'cg-X*' ones. The non-trivial mapping is:
	git addremote -> cg-branch-add
	git lsremote -> cg-branch-ls
	git patch -> cg-mkpatch
	git apply -> cg-patch
	git lsobj -> cg-admin-lsobj
  Commands that are gone:
	git fork
	git track
  New commands:
	cg-clone
	cg-update
  Of course other changes include various bugfixes, and latest Linus'
stuff (although we do not make use of Linus' tags yet).
  Note that I don't know how many time will I have for hacking Cogito
until the next Sunday/Monday. I hope I will get some time to at least
apply bugfixes etc, but I don't know how much more will I be able to do.
You would make me a happy man if you could please port your pending
patches from git-pasky to Cogito; I promise to apply them and I hope
there isn't going to be another so big change in the foreseeable future,
which would cause major conflicts for your patches etc.
  Note that I cc'd LKML since it is going to break stuff for anyone
using git-pasky now (apologies for that; it won't happen another time).
Please try not to keep it in the cc' list unless it is really relevant.
  Have fun,
-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor
Petr Baudis· Apr 26, 2005, 03:29 UTC · re: Petr Baudis · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

Dear diary, on Tue, Apr 26, 2005 at 05:24:22AM CEST, I got a letter where Petr Baudis <pasky@ucw.cz> told me that...

Show 6 quoted lines
>   here goes Cogito-0.8, my SCMish layer over Linus Torvald's git tree
> history tracker. This package was formerly called git-pasky, however
> this release brings big changes. The usage is significantly different,
> as well as some basic concepts; the history changed again (hopefully the
> last time?) because of fixing dates of some old commits. The .git/
> directory layout changed too.

I forgot to mention that you should really only upgrade if you feel brave and are willing to do some testing; it is likely there are some new bugs introduced by the renaming, some leftovers of the original git-pasky stuff in some not-so-frequently called scripts, etc. I will see how many bug reports will we get and how fast will the bugcount drop; if things won't stabilize very quickly, I might release git-pasky-0.7.1 with few obvious bugfixes.

(And don't write announcements at 4am.)
-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor
Mike Taht· Apr 26, 2005, 04:12 UTC · re: Petr Baudis · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

>   Yes, this is a huge change. No, I don't expect any further changes of
> similar scale. I think the new interface is significantly simpler _and_
> cleaner than the old one.

Heh. Another huge change would be moving the top level directories around a bit.

bindings COPYING git.spec Makefile programs README.reference tests contrib doc include po README src VERSION

Leaving fixing the makefiles aside as an exercise for the interested reader... that's:

#!/bin/sh

# completely rearrange the file structure of cogito/git # just to make pasky and other scm users insane once again # FIXME - fix the makefiles, git.spec

CFILES=`ls *.c` DFILES=`ls ppc/* mozilla-sha1/*` HFILES=`ls *.h` SRCDIR=src # or libgit? INCDIR=include/git-guts # or keep in SRCDIR or include/git or whatever COGDIR=programs/cogito # or just cogito. is git-web likely to be inc?

mkdir -p $SRCDIR $INCDIR $COGDIR \ bindings/perl bindings/python bindings/ruby po tests doc # just ideas, # no files (yet)

mv $CFILES ppc mozilla-sha1 $SRCDIR mv $HFILES $INCDIR COGFILES=`file * | grep "script text executable" | cut -f1 -d:` mv $COGFILES $COGDIR

cg-rm $CFILES $HFILES $COGFILES
for i in $CFILES $DFILES
do
         cg-add $SRCDIR/$i
done
for i in $HFILES
do
         cg-add $INCDIR/$i
done
cg-commit
-- 
Mike Taht


   "A straw vote only shows which way the hot air blows.
	-- O'Henry"
Petr Baudis· Apr 26, 2005, 12:23 UTC · re: Mike Taht · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

Dear diary, on Tue, Apr 26, 2005 at 06:12:04AM CEST, I got a letter where Mike Taht <mike.taht@timesys.com> told me that...

Show 14 quoted lines
> 
> >  Yes, this is a huge change. No, I don't expect any further changes of
> >similar scale. I think the new interface is significantly simpler _and_
> >cleaner than the old one.
> 
> Heh. Another huge change would be moving the top level directories 
> around a bit.
> 
> 
> bindings  COPYING  git.spec  Makefile  programs  README.reference  tests
> contrib   doc      include   po        README    src  VERSION
> 
> Leaving fixing the makefiles aside as an exercise for the interested 
> reader... that's:

Actually, I've been thinking about this, but I think we just don't need it *yet*.

And by the time we will need to make things more hierarchical, we will hopefully have some way to deal with renames sensibly. We need something for that too - either something ultra-smart as Linus describes, or explicit renames, but merging not working across renames makes them total nightmare.

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor
Paul Jackson· Apr 26, 2005, 17:40 UTC · re: Petr Baudis · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

> some way to deal with renames sensibly. 

For a Linux kernel merge tool that I did inside SGI, I come to the conclusion the following heuristics identified renames fairly accurately, coming up with the same renames as a careful manual examination.

The key heuristic was to consider one file A to be a rename of another B if the size (number of lines) of the diff of A and B (diff -auw A B | wc -l) is less than 50% of the combined size of A and B (cat A B | wc -l).

Only pathname pairs with the same basename were considered - I was focused here on renames due to directory restructuring. I'm not sure now if this is a good assumption - but it sure saved some computation.

Any file with the string "Makefile" in its name had to be excluded from consideration.

In case of multiple potential renames (say one file is copied to two places, removing the original and modifying each copy a little), the 'best' rename was selected, where 'best' meant the lowest ratio of diff 'diff -auw' size to combined 'cat' size.

The end result of the above was a fairly natural identification of renames. If say I moved kernel/cpuset.c to mm/cpuset.c and changed it a little bit, the above heuristics would show a rename, plus a few changes.

-- 
                  I won't rest till it's the best ...
                  Programmer, Linux Scalability
                  Paul Jackson <pj@engr.sgi.com> 1.650.933.1373, 1.925.600.0401
Martin Atukunda· Apr 26, 2005, 15:15 UTC · re: Mike Taht · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

On Tuesday 26 April 2005 07:12, Mike Taht wrote:
Show 13 quoted lines
> >   Yes, this is a huge change. No, I don't expect any further changes of
> > similar scale. I think the new interface is significantly simpler _and_
> > cleaner than the old one.
>
> Heh. Another huge change would be moving the top level directories
> around a bit.
>
>
> bindings  COPYING  git.spec  Makefile  programs  README.reference  tests
> contrib   doc      include   po        README    src  VERSION
>
> Leaving fixing the makefiles aside as an exercise for the interested
> reader... that's:

<snip> something like:

--- cogito-0.8.orig/Makefile 2005-04-26 06:02:01.000000000 +0300 +++ cogito-0.8/Makefile 2005-04-26 18:10:52.558786968 +0300

@@ -15,7 +15,7 @@
 # BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely 
randomly
 # break unless your underlying filesystem supports those sub-second times
 # (my ext3 doesn't).
-CFLAGS=-g -O2 -Wall
+CFLAGS=-g -O2 -Wall -Isrc
 
 # Should be changed to /usr/local
 prefix=$(HOME)
@@ -25,19 +25,23 @@
 CC=gcc
 AR=ar
 
-SCRIPTS=git-merge-one-file-script git-prune-script git-pull-script 
git-tag-script
+SCRIPTS=programs/cogito/git-merge-one-file-script 
programs/cogito/git-prune-script \
+	programs/cogito/git-pull-script programs/cogito/git-tag-script
 
-PROG=   update-cache show-diff init-db write-tree read-tree commit-tree \
-	cat-file fsck-cache checkout-cache diff-tree rev-tree show-files \
-	check-files ls-tree merge-base merge-cache unpack-file git-export \
-	diff-cache convert-cache http-pull rpush rpull rev-list git-mktag \
-	diff-tree-helper
-
-SCRIPT=	commit-id tree-id parent-id cg-Xdiffdo cg-Xmergefile \
-	cg-add cg-admin-lsobj cg-cancel cg-clone cg-commit cg-diff \
-	cg-export cg-help cg-init cg-log cg-ls cg-merge cg-mkpatch \
-	cg-patch cg-pull cg-branch-add cg-branch-ls cg-rm cg-seek cg-status \
-	cg-tag cg-update cg-Xlib
+PROG=   src/update-cache src/show-diff src/init-db src/write-tree 
src/read-tree src/commit-tree \
+	src/cat-file src/fsck-cache src/checkout-cache src/diff-tree src/rev-tree 
src/show-files \
+	src/check-files src/ls-tree src/merge-base src/merge-cache src/unpack-file 
src/git-export \
+	src/diff-cache src/convert-cache src/http-pull src/rpush src/rpull 
src/rev-list src/git-mktag \
+	src/diff-tree-helper
+
+SCRIPT=	programs/cogito/commit-id programs/cogito/tree-id 
programs/cogito/parent-id programs/cogito/cg-Xdiffdo\
+	programs/cogito/cg-Xmergefile programs/cogito/cg-add 
programs/cogito/cg-admin-lsobj \
+	programs/cogito/cg-cancel programs/cogito/cg-clone programs/cogito/cg-commit 
programs/cogito/cg-diff \
+	programs/cogito/cg-export programs/cogito/cg-help programs/cogito/cg-init 
programs/cogito/cg-log \
+	programs/cogito/cg-ls programs/cogito/cg-merge programs/cogito/cg-mkpatch 
programs/cogito/cg-patch \
+	programs/cogito/cg-pull programs/cogito/cg-branch-add 
programs/cogito/cg-branch-ls \
+	programs/cogito/cg-rm programs/cogito/cg-seek programs/cogito/cg-status 
programs/cogito/cg-tag \
+	programs/cogito/cg-update programs/cogito/cg-Xlib
 
 COMMON=	read-cache.o
 
@@ -45,17 +49,17 @@
 
 VERSION= VERSION
 
-LIB_OBJS=read-cache.o sha1_file.o usage.o object.o commit.o tree.o blob.o
-LIB_FILE=libgit.a
-LIB_H=cache.h object.h
+LIB_OBJS=src/read-cache.o src/sha1_file.o src/usage.o src/object.o 
src/commit.o src/tree.o src/blob.o src/rsh.o
+LIB_FILE=src/libgit.a
+LIB_H=src/cache.h src/object.h src/rsh.h
 
-LIB_H += strbuf.h
-LIB_OBJS += strbuf.o
+LIB_H += src/strbuf.h
+LIB_OBJS += src/strbuf.o
 
-LIB_H += diff.h
-LIB_OBJS += diff.o
+LIB_H += src/diff.h
+LIB_OBJS += src/diff.o
 
-LIBS = -lz
+LIBS = -lz -lcurl
 
 ifdef MOZILLA_SHA1
 	SHA1_HEADER="mozilla-sha1/sha1.h"
@@ -98,8 +102,14 @@
 	install -m755 -d $(DESTDIR)$(bindir)
 	install $(PROG) $(SCRIPTS) $(SCRIPT) $(GEN_SCRIPT) $(DESTDIR)$(bindir)
 
+uninstall:
+	$(foreach file,$(SCRIPT),$(shell rm $(DESTDIR)$(bindir)/$(shell basename 
$(file))))
+	$(foreach file,$(PROG),$(shell rm $(DESTDIR)$(bindir)/$(shell basename 
$(file))))
+	$(foreach file,$(SCRIPTS),$(shell rm $(DESTDIR)$(bindir)/$(shell basename 
$(file))))
+	$(foreach file,$(GEN_SCRIPT),$(shell rm $(DESTDIR)$(bindir)/$(shell basename 
$(file))))
+
 clean:
-	rm -f *.o mozilla-sha1/*.o ppc/*.o $(PROG) $(GEN_SCRIPT) $(LIB_FILE)
+	rm -f *.o src/*.o cogito/*.o mozilla-sha1/*.o ppc/*.o $(PROG) $(GEN_SCRIPT) 
$(LIB_FILE)
 
 backup: clean
 	cd .. ; tar czvf dircache.tar.gz dir-cache
Benjamin Herrenschmidt· Apr 26, 2005, 04:22 UTC · re: Petr Baudis · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

On Tue, 2005-04-26 at 05:24 +0200, Petr Baudis wrote:
Show 10 quoted lines
>   Hello,
> 
>   here goes Cogito-0.8, my SCMish layer over Linus Torvald's git tree
> history tracker. This package was formerly called git-pasky, however
> this release brings big changes. The usage is significantly different,
> as well as some basic concepts; the history changed again (hopefully the
> last time?) because of fixing dates of some old commits. The .git/
> directory layout changed too.
>
> .../...

Unless you already did this in the latest release, it would be nice to have something like havign all the low level tools be by default in some ~/lib/git or whatever, and only the cg-* scripts in ~/bin on install, unless maybe you pass some kind of I_AM_A_REAL_GIT=1 on the make line ...

I don't really plan to use the low level tools, and I don't like the way they clobber my bin namespace :)

Ben.
Jeff Garzik· Apr 26, 2005, 04:58 UTC · re: Petr Baudis · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

Petr Baudis wrote:
Show 8 quoted lines
>   Hello,
> 
>   here goes Cogito-0.8, my SCMish layer over Linus Torvald's git tree
> history tracker. This package was formerly called git-pasky, however
> this release brings big changes. The usage is significantly different,
> as well as some basic concepts; the history changed again (hopefully the
> last time?) because of fixing dates of some old commits. The .git/
> directory layout changed too.

tar xvfj $x cd x make ... gcc -g -O2 -Wall '-DSHA1_HEADER=<openssl/sha.h>' -o rpull rpull.c libgit.a rsh.c -lz -lssl gcc -g -O2 -Wall '-DSHA1_HEADER=<openssl/sha.h>' -o rev-list rev-list.c libgit.a -lz -lssl gcc -g -O2 -Wall '-DSHA1_HEADER=<openssl/sha.h>' -o git-mktag git-mktag.c libgit.a -lz -lssl gcc -g -O2 -Wall '-DSHA1_HEADER=<openssl/sha.h>' -o diff-tree-helper diff-tree-helper.c libgit.a -lz -lssl make: commit-id: Command not found Generating cg-version...

So, it still complains about commit-id
	Jeff
Daniel Barkalow· Apr 26, 2005, 05:18 UTC · re: Jeff Garzik · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

On Tue, 26 Apr 2005, Jeff Garzik wrote:
Show 16 quoted lines
> tar xvfj $x
> cd x
> make
> ...
> gcc -g -O2 -Wall '-DSHA1_HEADER=<openssl/sha.h>' -o rpull rpull.c 
> libgit.a rsh.c -lz -lssl
> gcc -g -O2 -Wall '-DSHA1_HEADER=<openssl/sha.h>' -o rev-list rev-list.c 
> libgit.a -lz -lssl
> gcc -g -O2 -Wall '-DSHA1_HEADER=<openssl/sha.h>' -o git-mktag 
> git-mktag.c libgit.a -lz -lssl
> gcc -g -O2 -Wall '-DSHA1_HEADER=<openssl/sha.h>' -o diff-tree-helper 
> diff-tree-helper.c libgit.a -lz -lssl
> make: commit-id: Command not found
> Generating cg-version...
> 
> So, it still complains about commit-id

In this case, it would complain about .git/HEAD even if it found commit-id. The right solution is probably to suppress that part if there's no .git/HEAD.

	-Daniel
*This .sig left intentionally blank*
Al Viro· Apr 26, 2005, 05:40 UTC · re: Daniel Barkalow · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

Show 5 quoted lines
> > So, it still complains about commit-id
> 
> In this case, it would complain about .git/HEAD even if it found
> commit-id. The right solution is probably to suppress that part if there's
> no .git/HEAD.

The right thing is to stop assuming that everyone has . in their $PATH, to start with...

Daniel Barkalow· Apr 26, 2005, 06:03 UTC · re: Al Viro · lore

[PATCH] Don't use commit-id in building

On Tue, 26 Apr 2005, Al Viro wrote:
Show 8 quoted lines
> > > So, it still complains about commit-id
> > 
> > In this case, it would complain about .git/HEAD even if it found
> > commit-id. The right solution is probably to suppress that part if there's
> > no .git/HEAD.
> 
> The right thing is to stop assuming that everyone has . in their $PATH,
> to start with...

Does anyone have . in their $PATH? I've only used the commit-id that I installed previously. Since the tarball doesn't have a .git directory, the only way you end up building cogito from a directory with a repository is by using an earlier cogito or something of the sort, in which case, you probably have the program.

In any case, commit-id isn't actually necessary for this operation.

- We don't necessarily have commit-id available when building. Furthermore, we don't necessarily have a repository. Just put in .git/HEAD if it exists; otherwise, it's a base distribution.

Signed-Off-By: Daniel Barkalow <barkalow@iabervon.org>
Index: Makefile
===================================================================
--- f262000f302b749e485f5eb971e6aabefbb85680/Makefile  (mode:100644 sha1:4f01bbbbb3fd0e53e9ce968f167b6dae68fcfa92)
+++ uncommitted/Makefile  (mode:100644)
@@ -87,11 +87,13 @@
 http-pull: LIBS += -lcurl
 
 
-cg-version: $(VERSION)
+cg-version: $(VERSION) .git/HEAD
 	@echo Generating cg-version...
 	@rm -f $@
 	@echo "#!/bin/sh" > $@
-	@PATH=.:$(PATH) echo "echo \"$(shell cat $(VERSION)) ($(shell commit-id))\"" >> $@
+	@echo -n "echo \"$(shell cat $(VERSION))" >> $@
+	@if [ -r .git/HEAD ]; then echo -n " ($(shell cat .git/HEAD))" >> $@; fi
+	@echo "\"" >> $@
 	@chmod +x $@
 
 install: $(PROG) $(SCRIPTS) $(SCRIPT) $(GEN_SCRIPT)
Philip Pokorny· Apr 26, 2005, 07:02 UTC · re: Petr Baudis · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

Petr Baudis wrote:
> the history changed again (hopefully the
>last time?) because of fixing dates of some old commits.
>

Looks like the git-pasky-0.7 tags (and friends) are now dead links. For example:

[philip@xray cogito]$ cg-mkpatch git-pasky-0.7:HEAD .git/objects/c8/3b95297c2a6336c2007548f909769e0862b509: No such file or directory fatal: cat-file c83b95297c2a6336c2007548f909769e0862b509: bad file Invalid id: c83b95297c2a6336c2007548f909769e0862b509

Is there any way to recover that, or has the timeline been irrevocably altered, and we're all now doomed to meet bastard daughters of long dead crew members? [grin]...

:v)
Actually, I really liked that Enterprise-C episode...
Petr Baudis· Apr 26, 2005, 20:43 UTC · re: Philip Pokorny · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

Dear diary, on Tue, Apr 26, 2005 at 09:02:34AM CEST, I got a letter where Philip Pokorny <ppokorny@mindspring.com> told me that...

Show 14 quoted lines
> Petr Baudis wrote:
> 
> >the history changed again (hopefully the
> >last time?) because of fixing dates of some old commits.
> >
> 
> Looks like the git-pasky-0.7 tags (and friends) are now dead links. For 
> example:
> 
> [philip@xray cogito]$ cg-mkpatch git-pasky-0.7:HEAD
> .git/objects/c8/3b95297c2a6336c2007548f909769e0862b509: No such file or 
> directory
> fatal: cat-file c83b95297c2a6336c2007548f909769e0862b509: bad file
> Invalid id: c83b95297c2a6336c2007548f909769e0862b509
Oops. Good catch, fixed. I actually just iterated cg-log. ;-)
-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor
Morten Welinder· Apr 26, 2005, 13:36 UTC · re: Petr Baudis · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

> [...] build and install it, [...]
It assumes the presense of .git/HEAD but doesn't actually fail when missing.

... gcc -g -O2 -Wall '-DSHA1_HEADER=<openssl/sha.h>' -o diff-tree-helper diff-tree-helper.c libgit.a -lz -lssl cat: .git/HEAD: No such file or directory Invalid id: Generating cg-version...

Morten
Pavel Machek· Apr 26, 2005, 22:21 UTC · re: Petr Baudis · lore

Re: [ANNOUNCE] Cogito-0.8 (former git-pasky, big changes!)

Hi!
Show 26 quoted lines
>   here goes Cogito-0.8, my SCMish layer over Linus Torvald's git tree
> history tracker. This package was formerly called git-pasky, however
> this release brings big changes. The usage is significantly different,
> as well as some basic concepts; the history changed again (hopefully the
> last time?) because of fixing dates of some old commits. The .git/
> directory layout changed too.
> 
>   Upgrading through pull is possible, but rather difficult and requires
> some intimacy with both git, git-pasky and Cogito. So probably the best
> way to go is to just get cogito-0.8 tarball at
> 
> 	http://www.kernel.org/pub/software/scm/cogito/
> 
> or
> 
> 	ftp://ftp.kernel.org/pub/software/scm/cogito/
> 
> build and install it, and do
> 
> 	cg-clone rsync://rsync.kernel.org/pub/scm/cogito/cogito.git
> 
> 
> 
>   Yes, this is a huge change. No, I don't expect any further changes of
> similar scale. I think the new interface is significantly simpler _and_
> cleaner than the old one.
It seems to need libcurl-dev... installed.
Error handling could certainly be improved:

pavel@amd:/data/l/cogito$ cg-clone rsync://rsync.kernel.org/pub/scm/cogito/cogito.git ./cg-clone: line 22: cg-init: command not found pavel@amd:/data/l/cogito$ PATH=/data/l/cogito:$PATH pavel@amd:/data/l/cogito$ cg-clone rsync://rsync.kernel.org/pub/scm/cogito/cogito.git cg-clone: cogito/ already exists

										Pavel
-- 
Boycott Kodak -- for their patent abuse against Java.

← back to recent threads