| 2006-11-08 |
| dwmw2_zzz → dwmw2_gone | 00:08 |
| Insount → Insount_away | 00:28 |
| Insount_away → Insount | 00:43 |
| Insount → Insount_away | 00:51 |
| dwmw2_gone → dwmw2_TPE | 01:02 |
| → kanru joined | 01:28 |
| → anholt joined | 01:41 |
| → GeertB joined | 01:50 |
| beu → boo | 02:33 |
| boo → beu | 02:43 |
| → benlau joined | 03:00 |
| → sgrimm_ joined | 03:07 |
| → sgrimm joined | 03:33 |
| → yashi joined | 03:49 |
|
cehteh
| http://www.pipapo.org/gitweb?p=cinelerra-svn;a=summary how could master/origin lag behind the actual head? that repo is only synced from svn with git-svnimport, but i recently has some problem and maybe i did a improper fix | 04:13 |
|
mugwump
| that's a gitweb bug I think | 04:21 |
|
cehteh
| a way to fix it? | 04:23 |
|
mugwump
| it's a cosmetic bug, so I didn't worry about it | 04:27 |
| → sgrimm joined | 04:28 |
|
cehteh
| ok .. well looks scary on a first view ;) | 04:28 |
| → spearce joined | 04:58 |
| → Newsome joined | 05:03 |
| → gitster joined | 05:10 |
|
gitster
| is cehteh still around? | 05:13 |
|
cehteh
| yes | 05:13 |
|
gitster
| the cinelerra problem you mentioned about an hour ago. | 05:13 |
|
| that is a problem at the repository side. | 05:14 |
|
| it's info/refs is out of sync. | 05:14 |
|
cehteh
| ok | 05:14 |
|
| how can i bring it back into sync? | 05:14 |
|
gitster
| "git-update-server-info". | 05:14 |
|
cehteh
| too easy :P | 05:14 |
|
mugwump
| aha | 05:15 |
|
| mugwump updates his server refs | 05:15 |
|
cehteh
| done :) | 05:15 |
|
| thanks | 05:15 |
|
gitster
| Whenever a ref is updated (usually a public repo that is pushed into this is handled via post-update hook) you need to run it to support http downloaders. | 05:15 |
|
cehteh
| i just add that to my cron entry | 05:15 |
|
gitster
| If the site runs more recent version of gitweb, it is not needed to have gitweb behave, but http "commit walkers" still need it up-to-date. | 05:16 |
|
| what do you use to autosync with svn? | 05:16 |
|
cehteh
| its debian/etc | 05:16 |
|
| h | 05:16 |
|
| git-svnimport -rm -A authors -T trunk/hvirtual svn://svn.skolelinux.org/cinelerra/ | 05:17 |
|
| well a week ago it broke with some debian update .. some libs where in a wrong version .. | 05:18 |
|
gitster
| Ah, I do not know if git-svnimport has post update hooks, but if you are driving that from your cron job twice a day, running update-server-info from that cron job after svnimport returns would be the right thing to do. | 05:18 |
|
cehteh
| i likely fixed that improperly | 05:18 |
|
| yeah .. i just add that to the crontab entry now | 05:18 |
|
gitster
| sounds good. | 05:18 |
|
cehteh
| planning to make a better script someday which also repacks .. but thats not urgent | 05:19 |
|
| btw .. did anyone noticed the sync-timeout patch i send to the ML? :) | 05:21 |
|
gitster
| yes, and I did not quite like it. first, I think driving "prune" from cronjob is, how would I say it..., playing with fire? | 05:22 |
|
cehteh
| repack calls prune | 05:23 |
|
gitster
| by the majorly lockless nature of git, prune is unsafe with anything that modifies the repository; local update-index, commit, fetch, etc. | 05:23 |
|
cehteh
| yes | 05:23 |
|
gitster
| if I were doing it I would probably take the repository offline, run prune and then put it online again, but I probably would not do that from a cron job or make the job interval sufficiently long. | 05:24 |
|
| I do not think "give up and do not remove if we cannot sync in time" is necessarily a bad idea, | 05:25 |
|
cehteh
| i am planning to do only incremental packing .. if someone merges/pulls during a prune wouldnt it just abort and he has to retry? | 05:25 |
|
gitster
| but I do not think that timeout belongs in the prune (or in git). | 05:25 |
|
cehteh
| gitster: i first wanted a mail saying that this is a bandaid | 05:26 |
|
| actually calling sync() in prune is already a bandaid | 05:26 |
|
gitster
| Why? I would say it is a prudent thing to do. That is where we really would want to make sure the previous writes hit the platter. | 05:27 |
|
| Oh the other hand, | 05:27 |
|
cehteh
| i know that it is not the best solution .. but i think its at least an improvement to the current situation where a prune can hang for long time | 05:27 |
|
gitster
| even if previous writes hit the platter (we could use fsync or fdatasync if we want to make it cheaper), there is no guarantee that the renaming of *.lock file to the final name hits the platter without sync X-<. | 05:28 |
|
cehteh
| yes .. bit ugly | 05:29 |
|
| i have no better solution either | 05:29 |
|
gitster
| I would really think the "sync taking a long time" is a local matter. Why can't you do an equivalent of ^C from surrounding script you run from cron which runs whatever command (one of which happens to be "git prune")? | 05:29 |
|
cehteh
| in that case it wasnt even from a cron script | 05:30 |
|
| i just repacked the repo and it hung | 05:30 |
|
| on the console .. and you cant ^C the sync .. it will hang | 05:30 |
|
| maybe you can argue that it was a bad idea to zero out a 80GB hd in another console .. | 05:31 |
|
| but having git hanging because of some totally unrelated job which is going on is not a good idea i would say | 05:32 |
|
| besides its not really intuitive why it hangs for a user | 05:32 |
|
gitster
| if you try not to talk about sync needing to write the whole dirty data which may take a long time, then that is true -- it is hard to explain -- but you have exactly the same problem of being hard-to-explain if you do the backgrounding of the sync and erroring it out. Your users would demand to know why it does not finish and errors out. | 05:38 |
|
cehteh
| mhm .. maybe a suggestion "try later again.." would leave a better feel for the user | 05:44 |
| ← avuton left | 05:53 |
| → robinr joined | 06:37 |
|
| gitster somehow feels #git is active mostly according to european time-of-day. when he drops by, which is not that often, not many people are around... | 06:45 |
|
cehteh
| well .. 7:45am here | 06:46 |
|
| (germany) | 06:46 |
|
gitster
| 2245 tuesday (california) | 06:46 |
|
cehteh
| but i always feel that most channels are active at us time anyways ... evening/early night | 06:46 |
|
| european morning and us nighttime is a bad time to expect traffic on irc ;) | 06:47 |
|
| do you feel bored or what? | 06:48 |
|
gitster
| not really, just feeling left out somewhat ;-) #git feels more european than others. many active people seem to be from europe. | 06:49 |
|
cehteh
| here wasnt that much traffic the past days anyways | 06:51 |
| → kanru joined | 06:54 |
|
cehteh
| git stores no (extended) metadata about versioned files aside? (execpt permissions) | 06:58 |
| → ShadeHawk joined | 07:05 |
| → cods joined | 07:15 |
| → ferdy joined | 07:56 |
| → cods joined | 08:04 |
| → lu_zero joined | 08:12 |
|
lu_zero
| hi | 08:13 |
| ← gitster left | 08:37 |
| → nud joined | 09:02 |
| → devogon joined | 09:08 |
| → kanru joined | 09:29 |
| → chris2 joined | 10:20 |
| → wildfire joined | 10:36 |
|
wildfire
| with cogito, how do I checkout the contents of the tree as of a particular tag? | 10:36 |
|
| ahh - cg-seek | 10:37 |
| → yash1 joined | 10:47 |
| → matled joined | 10:51 |
| → robfitz joined | 11:34 |
| → GyrosGeier joined | 12:05 |
| → cods joined | 12:19 |
| → kanru joined | 12:42 |
| → kanru_ joined | 13:24 |
| Insount_away → Insount | 13:26 |
| → cods joined | 13:30 |
| → GeertB joined | 13:48 |
| dwmw2_TPE → dwmw2_gone | 13:58 |
| → xl0 joined | 14:02 |
| dwmw2_gone → dwmw2_TPE | 14:38 |
| → timlarson_ joined | 14:39 |
| → timlarson_ joined | 14:49 |
| → timlarson__ joined | 15:12 |
| → Gitzilla joined | 15:30 |
| → GeertB joined | 15:43 |
| → GeertB joined | 16:17 |
| → cods joined | 16:28 |
| → krh joined | 16:34 |
| dwmw2_TPE → dwmw2_zzz | 16:49 |
| → robinr joined | 16:57 |
|
pasky
| hmrz | 16:57 |
|
| repo 1931 0.0 0.0 2864 1364 ? S 15:51 0:00 /bin/sh /home/pasky/bin/git-fetch -f -u -k --mirror-all git://git.kernel.org/pub/scm/linux/kernel/git/jsipek/gq.git | 16:57 |
|
| fetch from k.org hangs forever again :( | 16:57 |
| → cworth_ joined | 17:05 |
|
robinr
| EGIT preview: http://rosenberg.homelinux.net/paste/lp4.png :) | 17:06 |
|
| does git use different kinds of compression? I had to stop reading the history because java's compression routines bombed | 17:08 |
| → spearce joined | 17:13 |
| cworth_ → cworth | 17:13 |
|
robinr
| spearce: http://rosenberg.homelinux.net/paste/lp4.png | 17:14 |
|
spearce
| robinr: VERY COOL. That's slick. | 17:14 |
|
pasky
| (a hint: please be careful about showing full 40-digit hashes in UI, 7, 8, or 12 digits suffice at most places) | 17:17 |
|
spearce
| yea, i agree with pasky; those object ids can probably be abbreviated to 8 digits; just to make it more readable. | 17:18 |
|
| spearce reminds himself to add OBJ_OFS to pack parser in jgit. | 17:19 |
|
robinr
| well, it is probably possible to do more. This is the first version that works at all :) | 17:20 |
|
spearce
| i was terrified of writing the compare interface for eclipse. i do some eclipse/swt hacking at my day job and its ugly... :) | 17:21 |
|
robinr
| it is synchronous, slow as hell (probably not my fault :) ) and there are many considerations on exactly how the history should be presented | 17:22 |
|
| you want to know a secret? | 17:22 |
|
| or, I can just take credit for it all :) | 17:23 |
|
| I didn't write a compare interface, I just interfaced with the compare interface | 17:23 |
|
spearce
| so they already had most of that ui built? | 17:23 |
|
robinr
| the history list is mine | 17:24 |
|
| it is the full history until reading crashes.. | 17:25 |
|
spearce
| until reading crashes? is there a bug in jgit that i don't know about? | 17:25 |
|
robinr
| java.util.zip.DataFormatException: unknown compression method | 17:26 |
|
spearce
| aww crap. | 17:26 |
| → matled joined | 17:28 |
|
spearce
| is that the egit repository itself you are reading back through? packed? | 17:29 |
|
robinr
| egit itself, packed | 17:30 |
|
spearce
| i'll try to setup a test case here and cause that... maybe i can fix it. :) | 17:30 |
|
robinr
| commit id: 84a899697aad8ed660db4605b5c8d0b30c18d6f5 | 17:31 |
|
| tree: 6ad2df1c74434d7df8d76fbf6678e36352c46099 | 17:32 |
| → alley_cat joined | 17:34 |
| → Eludias joined | 17:53 |
| → luxgladius joined | 18:01 |
|
luxgladius
| Hey there, does anybody know how to turn off less pagination where it is default? | 18:05 |
|
Gitzilla
| Pipe the output through cat. | 18:08 |
|
spearce
| cworth: PAGER= git foo | 18:08 |
|
| odd. I wrote 'or: ' and bitchx wrote 'cworth: '. | 18:09 |
|
luxgladius
| Ok, thanks for the tips | 18:09 |
|
pasky
| spearce: use irssi ;) | 18:14 |
|
ShadeHawk
| do any of you have on-line papers or presentations about git (for example for OLS), which could be put in http://git.or.cz/gitwiki/GitLinks ? | 18:14 |
|
| spearce starts installing irssi... | 18:15 |
|
pasky
| ShadeHawk: http://pasky.or.cz/ols-cogito/ for me, Junio has it on the web as well, it went through the mailinglist shortly after the presentation | 18:16 |
|
| and jdl has it on web as well, I guess | 18:16 |
|
Gitzilla
| Gitster made his slides available and the proceedings are available as PDFs. Check the ML archives for the slides link. | 18:16 |
| → sgrimm joined | 18:21 |
|
ShadeHawk
| Thanks | 18:24 |
| → lyakh joined | 18:25 |
|
cworth
| spearce: I don't know what it is about IRC clients but many of them have totally insane nick completion. | 18:27 |
|
spearce
| pasky: how do i get irssi to do my freenode nick password? | 18:28 |
| → spearce_ joined | 18:33 |
|
spuk-
| spearce: use nickserv.pl, or use /network -autosendcmd "/quote nickserv identify pazzw0rd" | 18:33 |
| spearce_ → spearce | 18:33 |
|
spearce
| robinr: I think I have offset delta implemented in egit now. I have to run off to lab but I'll look at the uncompression crashing. Git uses straight zlib (which Java uses the same library I think) so this is more likely just us reading the wrong bytes (bad offset seeked to and read). | 18:53 |
| → spearce joined | 19:00 |
| → segher joined | 19:27 |
| → Gitzilla joined | 19:28 |
| → anholt joined | 19:50 |
| → anholt_ joined | 19:50 |
| Insount → Insount_away | 19:54 |
| → DrNick joined | 20:17 |
|
| spearce thanks the git gods for verify-pack -v. | 20:22 |
|
spearce
| Apparently jgit isn't reading a pack properly; its figuring that a deltified tree is using a blob as its base, which then makes it a blob. That can't be right. | 20:22 |
|
ShadeHawk
| is it even possible to use other type element as a base? | 20:27 |
| → Newsome joined | 20:31 |
|
spearce
| ShadeHawk: No, the file format doesn't permit it. There's a bug in jgit that is grabbing the wrong base. :-) | 20:40 |
|
ShadeHawk
| Ah | 20:41 |
|
spearce
| I keep trying to walk through it in a debugger but these students in my lab section keep interrupting me asking for assitance. :) | 20:41 |
|
robinr
| give them an interesting problem to solve instead :) | 20:41 |
|
| and you can help them with it. | 20:42 |
|
spearce
| they are parsing xml in php. *shudders* | 20:42 |
|
ShadeHawk
| is it really that hard? | 20:50 |
|
| "pure" PHP or can they use SimpleXML for example? | 20:51 |
|
| By the way, speaking of XML, what do you think about idea of moving from RSS 2.01 to Atom for gitweb "feeds"? | 20:52 |
|
robinr
| Does it make things better? | 20:55 |
|
| spearce: hmm, reading now works... :) | 20:55 |
|
| it seems the use of BufferedReader is the problem. | 20:56 |
|
| I removed one reader and set the buffer size to 1 in another place. | 20:56 |
|
| it seems the buffered tried to read past the end of an embedded stream ... or something along those lines | 20:58 |
|
spearce
| ShadeHawk: They were trying to use any php library they could to read an RSS stream. But its a course for non-programmers so these folks even have trouble making simple HTML pages and the like. | 20:59 |
|
| robinr: I just found a delta base resolution that's horribly broken. Its not the bug you originally reported and its not related to the buffer problem you are talking about now. | 20:59 |
|
ShadeHawk
| from what I have read Atom feeds can have consistently and easily fragments of HTML/XML as contents | 21:00 |
|
spearce
| but its keeping me from reading back a tree. :-( | 21:00 |
|
robinr
| the same tree I reported, or another? | 21:00 |
|
spearce
| ShadeHawk: maybe, but their assignment was a trival: get text and print it. :) | 21:00 |
|
| robinr: same tree. | 21:00 |
|
| different pack though so it may have a different base, etc. then what you have. | 21:01 |
|
robinr
| I'm trying to send you a patch via DCC right now | 21:01 |
|
spearce
| yea, i doubt that will work. email (spearce@spearce.org) | 21:02 |
|
robinr
| git needs and IRC interface | 21:05 |
|
| I don't suggest you apply the patch, it's more of a "something like this" | 21:06 |
|
ShadeHawk
| well, there is work on GitTorrent protocol, why not IRC interface (you mean IRC channel of transfer, weren't you?) | 21:07 |
|
pasky
| that's not practical since the data is rather heavily ratelimited | 21:07 |
|
robinr
| DCC too? | 21:07 |
|
pasky
| aiui dcc doesn't work for the people who would make use of it | 21:07 |
|
| you can pass patches around with dcc rather easily too | 21:08 |
|
robinr
| well I couldn't in this case :( | 21:14 |
| → gitster joined | 21:17 |
|
gitster
| pasky here? | 21:20 |
| → sgrimm joined | 21:21 |
|
pasky
| yeah | 21:21 |
|
gitster
| did I break the fork support? | 21:21 |
|
pasky
| sick but here | 21:21 |
|
gitster
| ah, what did you catch? | 21:21 |
|
pasky
| you are talking about the next rebasing? | 21:21 |
|
gitster
| No, I have a few gitweb patch in master last night to "fix" breakage for users who do not want to use project forks in gitweb. | 21:22 |
|
pasky
| it was a flu since last week to today... since today it transformed to enteric flu or something, so I'm feeling really great | 21:22 |
|
| hmm | 21:22 |
|
| I'll update repo.or.cz and see what happens then | 21:22 |
|
| gitster: still seems to work well | 21:27 |
|
| even w/ latest next | 21:27 |
|
gitster
| thanks. I tested with both configurations. | 21:27 |
|
robinr
| spearce: why the ugly placement of braces in egit? :/ | 21:31 |
|
gitster
| by the way, I think somebody said delta in pack for tree is never created based on a blob and the restriction is in the file format. That is a misinformation. | 21:32 |
|
| So the reader of a pack should be prepared to see that; existing pack-objects never try to find delta between different types, but that is just an implementation issue. | 21:34 |
| → spearce_ joined | 22:07 |
|
spearce_
| gitster: then tell me how to get the type of a deltafied object without assuming it from the base. :) | 22:08 |
|
pasky
| ShadeHawk: is atom and rss compatible? | 22:10 |
|
spearce_
| robinr: as far as brace placement goes, that's how i like 'em. :) since i wrote the code i chose. of course now that someone else is also hacking on it with me maybe the sun java standard or a more gittish standard might be better. | 22:13 |
|
nud
| pasky: what do you mean by compatible ? | 22:13 |
|
gitster
| A delta has n-byte type and length (4-bit type, and 7-bit-per-byte length), followed by 20-byte base object name, followed by delta data, so the type is already there in the header. | 22:13 |
|
nud
| they share principle but have nothing common wrt syntax | 22:13 |
|
gitster
| But you may be right. Recent delta-base-offset change may have broken that premise -- which is not a big loss. | 22:13 |
|
spearce_
| go reread that code. :) the type is 6 or 7 to mean ofs_delta or ref_delta. | 22:13 |
|
| that's not recent change either; that's been since deltas were introduced. | 22:14 |
|
nud
| but syntax-wise, rss is not compatible with itself when you have two distinct versions :p | 22:14 |
|
pasky
| hmm | 22:14 |
|
| then I think ATOM shouldn't _replace_ RSS | 22:14 |
|
nud
| atom is more rational afaik | 22:14 |
|
| better conceived | 22:14 |
|
robinr
| is it supported by a large majority of RSS readers? | 22:15 |
|
mugwump
| if an RSS reader supports all RSS versions, it will probably support atom too | 22:16 |
|
nud
| afaik google only use atom for their webservices | 22:16 |
|
gitster
| shawn, you are right. c62266f (2005-06-30) made it so. | 22:17 |
|
ShadeHawk
| well, I'll _add_ Atom then (after some uniquifying). I hope some time this decade ;-)))) | 22:17 |
|
spearce_
| and its annoying its that way too because you have to walk back the entire chain just to obtain type. | 22:18 |
| spearce_ → spearce | 22:18 |
|
ShadeHawk
| Atom has author and contributor which naturally map into git's author and committer I think. I don't know enough about RSS 2.0 | 22:18 |
|
gitster
| yeah, we are trading density with seeks. | 22:19 |
|
sgrimm
| Any git-svn folks in the house? | 22:19 |
|
spearce
| probably not anything majorly wrong with that as we usually don't go get the type of an object unless we are also getting its content. | 22:19 |
|
ShadeHawk
| (by the way, there were request on IRC about adding RSS feeds for branches (heads), which wasn't unfortunately followed by code even thoug the suggestion how to do was posted here) | 22:20 |
|
robinr
| knewsticket didn't understand it at least | 22:20 |
|
spearce
| jgit on the other hand does some retarted object type checking early before getting the data, so its seeking 2x. :-( | 22:20 |
|
| but that's just poor coding on my part; not a fault of the file. | 22:20 |
|
pasky
| ShadeHawk: dunno, well, it's really so trivial that... :) | 22:20 |
|
ShadeHawk
| spearce: it's egit, jgit? | 22:20 |
|
robinr
| ok, that's where som of jgits speed comes from | 22:21 |
|
spearce
| jgit is the pure java git library; egit is the eclipse wrappers on top of that. | 22:21 |
|
ShadeHawk
| ah | 22:21 |
|
spearce
| i wanted jgit to not be based on eclipse at all so other folks (e.g. ant) could use it too. | 22:21 |
|
| robinr: yea. :-) | 22:21 |
| → DrNick joined | 22:23 |
|
spearce
| dammnit. when i seek within a pack file in jgit i'm going to the right location but find the wrong data: (176 != 89). | 22:32 |
|
ShadeHawk
| pasky: I started coding this, and it is not _that_ trivial (URL, description, using href subroutine) | 22:39 |
|
| this = rss for branches | 22:40 |
|
pasky
| hmm | 22:51 |
| → Oejet joined | 23:09 |
|
pasky
| gitster: BTW, can we please get git-pickaxe renamed to git-blame now? | 23:14 |
|
| (sorry if it already was, I'm not watching the list clsoely now) | 23:14 |
|
spearce
| nah, use git-knife. :) | 23:14 |
|
| pasky still has his disagreeing response to git-pickaxe's -M / -C use postponed too :( | 23:15 |
|
Oejet
| Since when did archaeologists use pickaxes? | 23:17 |
|
spearce
| git-dust-brush | 23:18 |
|
robinr
| git-accuse | 23:19 |
|
spearce
| git-convict | 23:20 |
|
robinr
| git-sue | 23:20 |
|
| why not make it a flag to git-annotate? | 23:20 |
|
spearce
| hmmm. git-sue might make it more friendly for the corporate types. | 23:20 |
|
sgrimm
| git-pillory? | 23:21 |
|
robinr
| hmm, have to look that work up | 23:21 |
|
| git-audit | 23:21 |
|
| that's the corporate version | 23:22 |
|
pasky
| complete git solution for your law and accounting departments | 23:22 |
|
spearce
| there's big money to be made there. :) | 23:23 |
|
Oejet
| The corporate command would be: git show-copyright-infringements | 23:24 |
|
gitster
| the command internal is already prepared to pretend to be compatible with annotate/blame so we can make three synonyms whenever we want. My original plan was to rename it to blame before pushing it out, but Linus posted quite a big advertisement on the list and mercurial (or somebody else, I do not remember) user survey mentions request for something like "git-pickaxe", so maybe the name needs to stay. | 23:24 |
|
robinr
| no | 23:27 |
|
| Oejet is looking a word beginning with 'o' in the Linux kernel, so that the command could be abbreviated to "git-sco", but to much dismay fails to find any such word. | 23:27 |
|
Oejet
| *for a | 23:27 |
|
robinr
| Oejet: maybe if pickaxe could locate copied code from outside git | 23:28 |
|
gitster
| oejet, since nethack ;-) | 23:29 |
|
robinr
| git-sco could be git-grep. like git grep -l SMP|mail court | 23:30 |
|
| or whatever they used | 23:30 |
| ← gitster left | 23:30 |
|
| spearce needs git-find-and-fix-bug | 23:30 |
|
Oejet
| Yeah, or what if you could turn your repository into a mobile agent (the fashion of the day), so that it would _by itself_ go out into the world looking for infringing code. Clever, eh? | 23:31 |
|
pasky
| spearce: we call the first part git bisect ;) | 23:36 |
|
spearce
| pasky: only if it ever worked to begin with. :) | 23:36 |
|
robinr
| apply it to itself then | 23:38 |
|
sgrimm
| Anyone know of any frontends to git-svn to give it a more svn-like UI? Trying to convince a team to migrate to git and if I can reduce the amount of unfamiliarity it'll be an easier sell. | 23:38 |
|
robinr
| the whole point of git is that it is different | 23:38 |
|
pasky
| spearce: oh well :) | 23:39 |
|
robinr
| svn-like ui = ? | 23:39 |
|
| tortoisesvn? | 23:39 |
|
pasky
| the common practice is that when you want to write a tool, you start from scratch with an empty file, write few functions, then start adding commands... | 23:40 |
|
| perhaps it's time for a more revolutionary appraoch | 23:40 |
|
| write and maintain a monster that does _everything_ | 23:40 |
|
| and when you want to write a tool, you start with that and keep removing stuff | 23:40 |
|
sgrimm
| robinr: Like a one-step "update" command that does the sort of thing cg-update does (merge upstream changes into the working copy). Or a "commit" command that refuses to let you blow away changes in the svn repository if you haven't fetched the latest. | 23:40 |
|
| pasky is full of helpful ideas today | 23:40 |
|
sgrimm
| I am ready to write a frontend to git-svn, just trying to see if I'd be reinventing the wheel. | 23:41 |
|
Gitzilla
| pasky: you go first | 23:41 |
|
robinr
| sgrimm: how stuck are people into the "SVN" model? | 23:42 |
|
sgrimm
| Unfortunately given the political reality here, we will have to do a gradual transition from svn to git, and I'd like to make it as seamless as possible to reduce pushback. | 23:42 |
|
| Oejet is not good at politics. | 23:42 |
|
sgrimm
| robinr: It is much more convenient than the git model for a subset of developers (e.g. making one-off edits to HTML files.) | 23:42 |
|
robinr
| stay with svn for a while and convert a few frontrunners using git-svn as-is | 23:43 |
|
sgrimm
| robinr: That's what I'm doing now. I'm one of the frontrunners. But it is too easy to shoot yourself in the foot with the current git-svn UI; you have to be very careful to do everything just right or you lose changes. | 23:43 |
|
robinr
| sgrimm: if the SCN model suits you better, maybe git isn't for you | 23:44 |
|
pasky
| sgrimm: you can configure git/cogito to behave exactly according to the svn model | 23:44 |
|
| including update-before-commit | 23:44 |
|
spearce
| sgrimm: i'm in the same position as you, only not with svn, with a f'ing system whose only interface is through Internet Explorer. Try keeping ~10,000 files in sync with git without shooting yourself in the foot. | 23:45 |
|
sgrimm
| pasky: Yes, but the problem is that I can't use Cogito to check in to our svn repository, I have to use git-svn for that. | 23:45 |
|
robinr
| I don't commit to any SVN repo, however I do the same with CVS | 23:45 |
|
sgrimm
| And, for example, if I do git-svn dcommit and fail to notice that one of the files I'm committing has just been changed by someone else, git-svn will happily overwrite the other version with my version without so much as a warning. | 23:45 |
|
spearce
| oh that's baaaad. | 23:46 |
|
sgrimm
| (I personally feel that's a bug, or at least a design flaw, in git-svn, but I'm too new to it to say that with any authority.) | 23:46 |
|
spearce
| at least i can lock the file and compare contents before overwriting it. | 23:46 |
|
robinr
| but I keep my patches in stgit, which simplifies things when they get back throug cvsimport | 23:46 |
|
| my patches become empty and I can delete them. Until then they that in my repo | 23:47 |
|
| the same model should work with git-svn. | 23:48 |
|
sgrimm
| Basically my problem is that we have a mix of people using svn right now. A bunch of developers who will adapt to git just fine and will end up preferring it, and a bunch of less technically inclined folks (web designers, etc.) who will never have any need for git's advanced capabilities and for whom the svn model is perfectly adequate. I want to come up with something that'll work for both groups during a transition period. | 23:48 |
|
robinr
| however it seems you are looking for a centralized model, and git ain't so | 23:48 |
|
| with stgit+git-svn your local changes won't be overwritten "just like that" | 23:49 |
|
sgrimm
| robinr: It's not my local changes that are getting overwritten, it's the changes in the svn repository. | 23:50 |
|
robinr
| ah, that's bad | 23:50 |
|
sgrimm
| Yeah. :) | 23:50 |
|
robinr
| that's different from git-cvscommit | 23:50 |
|
| it applies patches | 23:50 |
|
| it's clearly a git-svn bug | 23:51 |
|
sgrimm
| It actually surprised me a lot to see the behavior when I was first testing git-svn. I did an svn commit from a plain svn client, changed the same file on the git side, and expected to get at least a warning message when I tried to commit from git-svn. Instead it just sent the git version to the svn repository and when I did an update from the svn client, the svn-side change was gone. | 23:51 |
|
robinr
| bring it up on the mailing list | 23:52 |
|
pasky
| sgrimm: you're a no-windows shop? | 23:52 |
|
sgrimm
| pasky: Yeah, pretty much. The Windows guys will have to use git-cvsserver, but I think they don't use their workstations as more than glorified X terminals anyway. Most developers here use Macs. | 23:52 |
|
pasky
| how much work it would be to code git-svnserver? | 23:52 |
|
| nice | 23:53 |
|
spearce
| sgrimm: give the nontechnical folks git-gui. | 23:53 |
|
pasky
| give them qgit, it's nicer and stuff ;) | 23:53 |
|
| pasky hides | 23:53 |
|
sgrimm
| haha | 23:53 |
|
spearce
| or qit. | 23:54 |
|
pasky
| a competition! | 23:54 |
|
| that's always good | 23:54 |
|
robinr
| a problem with nontechnical (and some technical) is that merge conflicts scares the hell out of them | 23:54 |
|
sgrimm
| I will write up the git-svn problem and send it to the mailing list. I'm glad I'm not the only one who sees it as a bug! | 23:54 |
|
robinr
| that's my some SCM tools have file locking | 23:54 |
|
| s/my/why/ | 23:54 |
|
spearce
| ah, good point. git == no locks. i'm fighting that right now too with some users. | 23:55 |
|
robinr
| svn doesn't lock either | 23:55 |
|
sgrimm
| robinr: Happily, we have enough conflicts in svn that everyone is okay with them, even the less technical people (though they sometimes have to ask for help.) | 23:55 |
|
robinr
| locks are evil | 23:55 |
|
spearce
| i agree they are evil but try explaining that to a user who edits the same word document as 90 other people, and they only communicate by writing crap in that file. :) | 23:56 |
|
sgrimm
| So that's not a barrier. Actually the biggest barrier to going 100% git will be the changes in workflow, but cogito simplifies stuff enough that it probably won't be a big deal. ("cg-update" is very convenient.) | 23:56 |
|
robinr
| qgit is nice too | 23:57 |
|
| and graphical :) | 23:57 |
|
spearce
| note to self: add graphics to git-gui. :) | 23:57 |
|
robinr
| :) | 23:58 |
|
| not to self: go to bed | 23:58 |
|
pasky
| sgrimm: (cg-commit --push might be interesting for people deep set in the svn workflow) | 23:58 |
|
sgrimm
| pasky: Yeah, that will definitely be very nice for people who want to ease their way into the git world. | 23:59 |
|
| spearce starts to wonder if this jgit bug is actually the jvm unable to seek within a file... but it claims that it did... | 23:59 |
|
Oejet
| Git _is_ harder, because it is more general, and thus more _abstract_. | 23:59 |