Re: Adapting scripts to work in current (not top) directory
- From
Petr Baudis <pasky@ucw.cz>
- Date
- May 12, 2005, 20:12 UTC
- Message-ID
- <20050512201215.GI324@pasky.ji.cz>
- In-Reply-To
- <200505121758.10971.snake@penza-gsm.ru>
Dear diary, on Thu, May 12, 2005 at 03:58:10PM CEST, I got a letter where Alexey Nezhdanov <snake@penza-gsm.ru> told me that...
> All git and cogito scripts wants .git subdirectory. If I'm in a subdirectory > that have no .git direcory in it I'm out of luck.
This is fine for Cogito, but Git itself shouldn't care - unless you mean the bundled mini-plumbing scripts. I don't know if anyone (and who) uses them except Linus, but I'm not likely to make much effort to maintain them, or even to actually accept any non-trivial changes to them.
Show 5 quoted lines
> I have wrote an example script that determines the lowest possible .git > directory position and changes to it to satisfy user request. > > Problems with script: > 1) May be I misunderstood the git ideology and it needs not this at all.
Cogito really needs it.
> if point (1) is false then there are couple of other problems: > 2) Script is extremelly ugly. I'm a week bash programmer so please criticize. > 3) This logic shold be somehow embedded to all git- and cg- scripts. I can not > figure how to do it non-intruisively.
Add it to cg-Xlib. You can just update $_git appropriately. (Except when you were explicitly passed GIT_DIR.)
Show 9 quoted lines
> gitpath=
> subpath=
> curpath=`pwd`
> for ((i=2;i<9999;i=i+1)) ; do {
> path1=`echo $curpath | cut -d / -f 0-$i`
> path2=`echo $curpath | cut -d / -f $((i+1))-`
> [ -d "$path1"/.git ] && gitpath=$path1 && subpath=$path2
> [ "$path1" == "$curpath" ] && break
> }; doneI would gradually trim the $curpath by $(dirname) until I hit $curpath/.git or the root directory.
-- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor