| 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 end | 00:03 |
|
| (I think it should work...) | 00:04 |
| → tchan joined | 00: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 work | 00:57 |
|
| since git-upload-pack checks if you are asking for some ref | 00:58 |
|
| evil | 00: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 joined | 02:27 |
| → coywolf joined | 02:58 |
| → somegeek joined | 07:37 |
| → lilo joined | 07:37 |
| → ferdy joined | 08:54 |
| → chris2 joined | 10:04 |
| → robinr joined | 10:47 |
| → PugMajere joined | 11:06 |
| → PugMajere joined | 11:08 |
| → GeertB joined | 11:14 |
| → PugMajere joined | 11:15 |
| → PugMajere joined | 11:21 |
| → GeertB joined | 11:39 |
| → Beber` joined | 12:00 |
| → Eludias joined | 12:25 |
| → somegeek joined | 12:39 |
| → lilo joined | 12:40 |
|
| jdl yawns | 13:20 |
| → alley_cat joined | 13:26 |
| → Fredrik__ joined | 13:35 |
| → cworth joined | 14: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 log | 15: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 thnks | 15:54 |
|
| why under symbolic names:, not branch:? Elrond jdl | 15:56 |
|
Elrond
| Because cvs historic ;o) | 15:58 |
|
| jdk - Well, "Jakub Narebski" has a valid point in on-demand "alternatives". | 16:00 |
| ← coywolf left | 16:01 |
| → Beber` joined | 16:06 |
| → Oeje1 joined | 16:23 |
|
jdl
| elrond, Yea, he does. | 16:46 |
|
| elrond, What do you think of the Linus proposed command alias notion? | 16:48 |
| ← Oeje1 left | 16: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$ gitshell | 17:10 |
|
| git> rev-list | pack | 17: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 joined | 19:04 |
| → DrNick joined | 19:11 |
| → dst_ joined | 19: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 joined | 20:45 |
|
jdl
| Hi | 20: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.git | 20: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 joined | 20: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 parenthesis | 21:08 |
|
| all the others accept it and many in fact require it | 21: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"; shift | 21: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 list | 21:18 |
|
jdl
| kowai! | 21:18 |
|
pasky
| PugMajere: you could just hack it around by doing first=1; for blah; do [ "$first" ] && { first=; continue; }; ...; done | 21: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 spaces | 21:21 |
| → BearPerson joined | 21: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 none | 21:23 |
|
| depends on what are you doing with the "$*" afterwards | 21: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 HEAD | 21:50 |
|
| tree 303d5c8c3674ea99d06e1e11666906f4747b9913 | 21:50 |
|
| .. | 21:50 |
|
| [alias] | 21:50 |
|
| squeak = cat-file -p | 21:50 |
|
jdl
| Sweet. | 21:51 |
|
| Cat I do arg substitution yet? | 21:51 |
|
| er, s/Cat/Can | 21:52 |
|
| And, can I setup a pipeline yet? | 21:52 |
|
pasky
| go away :) | 21:52 |
|
jdl
| LOL | 21:52 |
|
ShadeHawk
| pasky: can [alias] be used for default options, like | 21:53 |
|
| [alias] | 21:53 |
|
| log = log --pretty | 21: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 not | 21:58 |
|
| they are sought first | 21:58 |
|
| and cannot be recursive | 21:58 |
|
jdl
| So you should be able to do "log" == "log --pretty" | 21:58 |
|
pasky
| yep | 21: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,* though | 22: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
| hehe | 22:04 |
|
| I'm not sure how posix sh the statement "if [[ $foo == bar* ]] && [[ $nook == "" ]] ;then" is | 22: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
| probably | 22:07 |
|
pasky
| ShadeHawk: on the right side there should be only true git commands | 22: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 instead | 22: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 then | 22:26 |
|
pasky
| ShadeHawk: no, aliases are checked always | 22: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 ~/.gitrc | 22: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 questions | 23:15 |
|
| pruning is one of the lesser problems | 23: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 slowdown | 23: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 design | 23: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 guess | 23: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 |