IRCloggy #git 2006-05-28

Logs Search ←Prev date Next date→ Channels Documentation

Provider of IRC logs since 2005.
WARNING: As Freenode became unjoinable and lost all warnings in topics, we cannot log channels on Freenode anymore.

2006-05-28

Elrond ShadeHawk - What if I want the binary representation of a "tree"?00:00
pasky if you don't care you get the objects in the tree as well, it _might_ work to just send 'want sha1ofthetree' to the other end00:03
(I think it should work...)00:04
tchan joined00:48
ShadeHawk Elrond: Linus has answered - in short you can hack it now for commits and tags only.00:49
pasky aha, asking directly for blob does not work00:57
since git-upload-pack checks if you are asking for some ref00:58
evil00:58
ShadeHawk I wonder if one can ask for blob (object) via http:// transport (assuming no ssh access, even git-shell limited).01:27
GyrosGeier joined02:27
coywolf joined02:58
somegeek joined07:37
lilo joined07:37
ferdy joined08:54
chris2 joined10:04
robinr joined10:47
PugMajere joined11:06
PugMajere joined11:08
GeertB joined11:14
PugMajere joined11:15
PugMajere joined11:21
GeertB joined11:39
Beber` joined12:00
Eludias joined12:25
somegeek joined12:39
lilo joined12:40
jdl yawns13:20
alley_cat joined13:26
Fredrik__ joined13:35
cworth joined14:20
Elrond jdl - out of blinking energy? ;)14:24
jdl Pre coffee.14:29
Hmm... So the whole issue of "Broken Repo Repair"...15:19
Elrond Yes?15:21
coywolf can i ask a cvs question here?15:29
Elrond Yes.15:30
jdl Go fo rit.15:30
coywolf what command can show me all the branches?15:31
Elrond cvs log .15:31
jdl cvs log15:31
Elrond At the top.15:31
Under "symbolic names:"15:31
jdl Well, that will show you the branchs in this file.15:32
Elrond All the ones matchin 1.*.0.*15:32
jdl You _might_ have crud under the Attic not in the "mainline" yet, and not showing the branches on those files.15:32
Elrond jdl - What did you mean with 'So the whole issue of "Broken Repo Repair"...'?15:35
jdl From ML, wanting individual objects based given a SHA1.15:35
Seems like the reason was ultimately to fix broken repo.15:36
The notion of repairing broken repos has come up before.15:36
Background pondering of "git fix-repo" command...?15:36
Elrond Ahh. ;)15:39
jdl Perhaps a commit walker that proves integrity throughout the tree, not jsut up to the "Yep, got it already" edge.15:40
coywolf Elrond, jdl thnks15:54
why under symbolic names:, not branch:? Elrond jdl15:56
Elrond Because cvs historic ;o)15:58
jdk - Well, "Jakub Narebski" has a valid point in on-demand "alternatives".16:00
coywolf left16:01
Beber` joined16:06
Oeje1 joined16:23
jdl elrond, Yea, he does.16:46
elrond, What do you think of the Linus proposed command alias notion?16:48
Oeje1 left16:54
Elrond jdl - Huh, which one?17:03
jdl THe notion that a config option could hold a command alias and options.17:04
So that "alias ci = 'commit -a'" could be set up in the config file.17:05
For example.17:05
Elrond sounds like a nice idea. Except shell aliases already exist?17:06
(except for the poor win32 people)17:06
jdl And the hard-wired CVS people. :-)17:06
Elrond And you will end up with half a shell in C...17:08
jdl half _another_ shell in C... :-)17:08
Elrond someone will ask: Why doesn't "alias commit = 'commit -a'" works?17:08
jdl Can I do arg substitution too?17:09
Can I set up a command pipeline?17:09
Elrond Yeah, that's the next question. :)17:09
work$ gitshell17:10
git> rev-list | pack17:10
;o)17:10
... with readline support. ;)17:10
jdl Heh.17:10
Elrond git> (pull mainsite && push mainsite) &17:12
Job 3 backgrounded.17:12
git>17:12
I think, the svn guys have something like that. At least, I have a vague feeling, having heard about some svnshell.17:16
sept joined19:04
DrNick joined19:11
dst_ joined19:17
ShadeHawk [gitshell] perhaps also as an addition to tig (http://git.or.cz/gitwiki/Tig)20:30
fonseca Nah, I don't think that is a good idea.20:40
gitster joined20:45
jdl Hi20:45
gitster hello, jdl.20:45
and everybody.20:45
jdl Nah, I'm here. No one else will be around. :-)20:45
gitster what's up?20:46
jdl I'm catching up on recent ML items.20:46
You?20:46
gitster not much, other than having fun with tig on and off. I really lke it.20:47
jdl I've not messed with it yet.20:47
gitster I wish it responded to 'h' or '?' with one page keybining cheat sheet without requiring manpages to be installed.20:48
jdl That'd be nice.20:49
Is/Will tig be shipped with git as, say, contrib?20:49
gitster I would love to, but I had an impression that the author was not all that interested.20:49
jdl Ooooo...bummer.20:50
gitster isn't its author around now?20:50
fonseca gitster: Do you want to include tig.c with git?20:50
ShadeHawk tig has separate homepage... I'm not sure what are the rules for stuff in contrib...20:50
fonseca Yep, I'm here.20:50
gitster I do not particularly *want* to, but I liked it a lot.20:50
fonseca Good. :)20:51
gitster I mean, myself. That does not mean it should be in contrib, especially something that has its own distribution site.20:51
But on the other hand, it is a good idea to give wider exposure to something *good*.20:51
jdl What is its current distribution repo?20:52
ShadeHawk if not gitshell in tig, then perhaps (when it would be in git) remotes, later repo, remotes, branches configuration browser in the likes of elinks bookmarks manager or ncftp bookmarks manager...20:52
gitster My tig/.git/remotes/origin says: URL: http://jonas.nitro.dk/tig/tig.git20:53
ShadeHawk jdl: http://jonas.nitro.dk/tig/tig.git/ (from http://git.or.cz/gitwiki/Tig)20:53
(is this last '/' important or not? IMVHO it shouldn't...?)20:53
jdl speaking of contrib stuff, gitweb would be nice...20:57
vlajos joined20:57
fonseca gitster: I will work on the Muttish help page.20:58
PugMajere I spent some time this week trying to write a unit test for git-send-email. I wonder if that's excessive. :)21:01
gitster automated test of that stuff I would imagine would be tricky.21:05
pasky is working on a patch for [alias]21:05
gitster a note like that I find very nice -- avoids duplicated effort.21:05
pasky About the opening parentheses in case and survey of behaviour of different shells, I can remember reading about it somewhere at http://www.in-ulm.de/~mascheck/various/21:06
http://www.in-ulm.de/~mascheck/various/cmd-subst/21:07
so, netbsd's ash is the only one refusing the opening parenthesis21:08
all the others accept it and many in fact require it21:08
PugMajere $* gives me a list of all parameters, how do I get all but the first? I seem to remember something funny, like $1+, but I'm really not that familiar with shell scripting to recall...21:10
fonseca pasky: Speaking of things in the works, I have a patch that make: cg push branch1 branch2; possible.21:10
matled PugMajere: first="$1"; shift21:11
PugMajere bah, too easy, lol.21:11
gitster Ryna, no way to do so portably without mucking with the argument list IIRC.21:11
Also be careful when you say $*; most of the time you mean "$@" (with dq around it).21:12
PugMajere It's just going into a line like 'echo "$*" >file'21:12
gitster ah, then nevermind.21:12
PugMajere $* makes a space seperated list, $@ makes individual double-quoted arguments, right?21:12
err, "$@" makes individual double-quoted arugments.21:13
(pedantic correction there for any lurkers absorbing)21:13
matled echo "$@" is echo "$1" "$2" ..21:14
PugMajere Right. (That's what I was trying to say without providing an example, heh.)21:14
gitster Yes. I've seen many times people write $* when they mean "$@" and get burned when the user gives IFS characters from the command line.21:14
PugMajere Software would work so well if it weren't for all the users. :)21:15
gitster anyhow, have fun, everybody. off to work.21:16
jdl later!21:16
pasky fonseca: kawai!21:17
PugMajere: depends also what you are going to _do_ with the list21:18
jdl kowai!21:18
pasky PugMajere: you could just hack it around by doing first=1; for blah; do [ "$first" ] && { first=; continue; }; ...; done21:19
PugMajere actually, in this case, I just wanted to strip the first one, so 'shift ; echo "$*" >logfile' actually works just fine for me.21:20
pasky as long as there are no spaces21:21
BearPerson joined21:21
matled pasky: what's the problem with spaces in this case?21:21
pasky ah, it's "logfile"21:23
in that case possibly none21:23
depends on what are you doing with the "$*" afterwards21:23
PugMajere Especially since this is just a simple unit test for git-send-email, that is actually painfully complicated to make work (and found a bug, amazingly enough)21:23
ShadeHawk Hmm... looks like when git/cogito will have better support for subprojects/modules, it could have become great hit with Linux community distributions...21:27
PugMajere Is anyone currently working on that?21:28
I think it has very broad potential to be very popular...21:28
emrys git-fetch is explicitly not supposed to care about the working copy, correct?21:30
ShadeHawk BTW can any command (like diff for example, or cherry-pick) work across the repositories (e.g. diff from one repository to second repository)?21:33
jdl I believe it requires you to fetch the objects into a local branch first.21:33
ShadeHawk can one setup alternatives for the "joint" repository to both repositories somehow, se fetching doesn't actually transfer objects only create commits?21:36
jdl Huh?21:39
You can set up multiple URLs in, say, different remote files and pull different branches from multiple repos into one common repo.21:40
Is that your question?21:40
fetching should get the objects too.21:40
ShadeHawk the question is if you have both repositories locally, can you avoid copying objects to the "joint" repository (which have the repositories in separate branches) e.g. by the way of alternatives?21:43
jdl Ah, I see your question now.21:44
Unfortunately, I don't know the answer.21:44
pasky $ ./git squeak HEAD21:50
tree 303d5c8c3674ea99d06e1e11666906f4747b991321:50
..21:50
[alias]21:50
squeak = cat-file -p21:50
jdl Sweet.21:51
Cat I do arg substitution yet?21:51
er, s/Cat/Can21:52
And, can I setup a pipeline yet?21:52
pasky go away :)21:52
jdl LOL21:52
ShadeHawk pasky: can [alias] be used for default options, like21:53
[alias]21:53
log = log --pretty21:54
(or something like that)?21:54
jdl I think that translates to: Are aliases sought first or last in the command resolution code?21:54
ShadeHawk well... yeah. unless we will have different code or different configuration file for default options (the ~/.gitrc idea)21:55
BearPerson hmm, anyone around that I can toss what looks like a tiny code bug to me?21:55
jdl Sure.21:57
pasky ShadeHawk: sure, why not21:58
they are sought first21:58
and cannot be recursive21:58
jdl So you should be able to do "log" == "log --pretty"21:58
pasky yep21:59
BearPerson at the end of git-fetch.sh, the case statement checks for a match against t,*21:59
if I read the case above it correctly, there's no way the expression can become something that matches that, maybe ,t,* though22:00
pasky considers the git's case statements absolutely horrid ;)22:00
BearPerson yeah, though I personally more dislike fiddling with IFS ;)22:01
jdl If someone were to write the equivallent in Perl, they'd be accused of intentionally obscuring their code.22:04
BearPerson hehe22:04
I'm not sure how posix sh the statement "if [[ $foo == bar* ]] && [[ $nook == "" ]] ;then" is22:05
jdl That does look buggy, doesn't it?22:06
ShadeHawk pasky: not recursive aliases means that on the right hand side there should be only "true" git commands, or do alias parsing include cpp-like dealing with self-referential aliases?22:06
BearPerson but that statement could be compacted into "if [ "$update_head_ok" != "t" ] && [ "$orig_head" != "" ] ;then do_that_stuff ;fi"22:06
jdl I think our best plan is to convert it all to C and be done with bash.22:07
BearPerson probably22:07
pasky ShadeHawk: on the right side there should be only true git commands22:10
ShadeHawk BTW, pasky, aliases are checked *only* for interactive sessions (otherwise using aliases for default arguments would/could mess the scripts)?22:17
swoolley if you want it to work in non-interactive mode you could use functions instead22:21
or you can specify the expand_aliases shopt shell option in bash.22:22
ShadeHawk swoolley: I was talking about [alias] in git config file, not shell aliases.22:23
swoolley ahh, ignore me then22:26
pasky ShadeHawk: no, aliases are checked always22:27
send a patch if you don't like it ;)22:27
or just reply to it, don't have time to tweak it further now :|22:28
ShadeHawk hmmm... can whatchanged be now implemented as alias?22:29
thanks for the config patches, pasky...22:34
pasky bows ;)22:35
ShadeHawk both [alias] and ~/.gitrc22:39
I guess that most trouble with "on-demand remote alternatives"/"lazy cloning" would be with fsck and pruning... extending git://, http:// and ssh:// protocols to transfer object by sha1 shouldn't be *that* difficult...23:08
pasky what should e.g. git-log list?23:14
Elrond http:// should be able to do it anyway. ;)23:14
pasky only commits you have localy?23:14
or should it generate demand?23:14
Elrond pasky - That's one of the picky "policy questions" arising from the whole on demand stuff.23:15
pasky either way will raise many other questions23:15
pruning is one of the lesser problems23:15
Elrond pasky - Another one is: "Should any object downloaded 'on-demand' be cached locally or thrown away after some time?"23:15
pasky ShadeHawk: if you answer no, how do you decide what does generate demand and what does not?23:16
ShadeHawk: if you answer yes, you just broke the current reachability analysis and incremental fetches could get significant slowdown23:16
ShadeHawk: (well, you are going to break that if you answer no as well)23:17
so this really needs some thought and careful design23:17
ShadeHawk Ah, well, so the most trouble with "on-demand remote alternatives" would be "on-demand" part.23:17
pasky yes.. of course, you are also going for much tighter integration of fetchers to the core git parts, but that shouldn't be such a hurdle nowadays, I guess23:18
ShadeHawk I guess that the easiest would be to treat history as cauterized, unless overriden (e.g. when merge base is needed for merging, or requiring commit past cauterization point)23:18
i.e. "soft grafts" or "soft cauterization/cut-off"23:19
Elrond Right.23:20
Normally, when you do a git-pull, there's an old version in the branch you follow (you have that locally, because you worked with it) and there's the new version. For merging it could be assumee,d that there was no history in between and those two versions are parents/childs. ;)23:22
... and only if complex merging algortihms think, that they need intermediate history (for example to better track renames), then that intermediate jistory get downloaded.23:23
Anyway. Good night guys.23:27

Logs Search ←Prev date Next date→ Channels Documentation