IRCloggy #git 2006-11-09

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-11-09

robinr Oejet: nah00:00
it's not more general00:00
spearce i think git is simpler than almost anything else out there. but maybe that's because i know it so well. :)00:00
robinr it has more workflow built into it than most other SCM tools00:01
thus it is less general00:01
Oejet Hm.00:01
robinr however it is also very different00:01
the distributed and changeset (yes, it's snapshot, I know) is not what many are accustomed with00:03
insert "model" into that sentence00:03
pasky changeset is in everything but sourcesafe and cvs ;)00:03
robinr and clearcase00:06
not sure about pvcs00:07
spearce no, definately not in pvcs.00:07
spearce is still cursed by needing to use pvcs.00:07
robinr cvs, vss, cc and pcvs covers what "most" people are used to00:07
those that are used to version control at all00:08
pasky at least ms team foundation server looks a bit sane00:09
robinr spearce: is the bug you are looking present if you apply my remove-bufferedinputstream patch?00:10
spearce robinr: yea00:10
robinr there may be some more buffered streams (and readers) there00:13
spearce right now it looks like i have a situation where i'm seeking back within the pack to read the base object but when i do that i decode the header of the base wrong, due to the fact that i'm reading the wrong sequence of bytes from the pack file.00:14
i can't explain why i'm reading the wrong bytes, but i am.00:14
robinr where are you seeking?00:17
spearce to go get the data i previously read.00:17
robinr I mean src.java:line00:18
spearce XInputStream; the position(long) method.00:18
that method is really broken.00:20
hmm. putting this at the start of it (so the rest of the logic never runs) seems to fix the bug:00:22
if (p !=offset){count = 0;offset = p;fc.position(p);return;}00:22
robinr shouldn't you do some seeking om the underlying stream in if (p<offset) .. if (d<pos) ?00:25
spearce i wouldn't think its needed because i'm just adjusting the pointer within the in memory buffer...00:26
robinr couldn't you just use RandomAccessFile?00:26
spearce not to read a network stream. :)00:27
I treat a FileInputStream as random access by getting its FileChannel and seeking that.00:27
that's what fc.position(p) is about.00:27
robinr and it works on network streams?00:27
spearce no. :) which is why if its not a FileInputStream fc == null and we throw a "Stream is not reverse seekable" exception.00:28
lu_zero how to restrict git-merge to a subdir?00:28
spearce lu_zero: you can't. you merge the project you merge everything.00:28
robinr spearce: so you won't be able to read pack over the net anyway00:29
spearce robinr: no, not yet. i planned to get back to this code to buffer things somehow for deltas but didn't get that far.00:30
lu_zero spearce fine, but I need to do that in different steps =P00:30
lu_zero has to merge quite diverging trees =P00:30
robinr lu_zero: you could merge older commits than the head of the other trees00:31
lu_zero uh?00:32
looks like I'm missing something00:33
Oejet joined00:33
lu_zero git-merge will automerge whatever it could and leave the conflicts to me00:33
robinr if you merge another tree one commit at a time, you'd get fewer and simpler conflicts at a time00:33
instead of huge complicated conflicts00:33
-if you're lucky-00:34
lu_zero robinr hmm00:34
lu_zero needs to rtfm another time00:34
robinr it's not in the rtfm, I think00:34
lu_zero ouch00:35
robinr i do that sometimes (not in git, but the principle is the same)00:35
I get less code to read in order to resolve the conflict00:36
it is another way of solving many small problems instead of one big00:38
in my case it's undisciplined developers who are causing conflict by reformatting code00:39
gotta get some sleep now, before morning comes00:40
good night00:40
Newsome joined00:41
lu_zero nite00:41
hm00:41
how to revert to pre-merge ?00:41
spearce git reset --hard HEAD^00:41
spearce is ready to jump out a freaking window.00:47
lu_zero ?00:47
what happened?00:47
spearce How can advancing a pointer into a buffer of data backwards cause data corruption? In Java? Arrrrrrrrrrgh.00:47
lu_zero O_O00:47
dwmw2_zzzdwmw2_TPE00:58
Gitzilla joined01:16
sgrimm_ joined02:36
Insount_awayInsount02:38
anholt joined02:50
anholt_ joined02:50
spearce joined03:37
anholt joined03:52
spearce joined03:54
sgrimm joined04:44
anholt joined04:53
xjjk joined05:05
InsountInsount_away05:05
lyakh joined06:08
sgrimm joined06:30
meyering joined08:04
ShadeHawk joined09:34
beu joined09:50
kaib joined11:09
robfitz joined11:34
chris2 joined12:13
ferdy joined12:40
GyrosGeier joined12:42
devogon joined12:47
kreaturr joined13:32
benlau joined13:42
robinr joined13:43
_timlarson joined14:01
aggieben_ joined14:30
beubeuster14:39
GyrosGeier hmm14:45
GyrosGeier needs a "refactoring merge" algorithm14:46
GyrosGeier darcs has something similar, I was told14:46
essentially the idea is to say "these commits are caused by refactoring"14:46
and the merge would try to reduce them to word substitutions and apply these to the other branch as well14:47
ShadeHawk note header (when it will get implemented) with two tags, linking to two blobs being scripts, one to do transformation, one to revert transformation, perhaps14:50
or new merge strategy, which would do wdiff.14:50
and try to wmerge (if there is such thing)14:50
GyrosGeier new merge strategy sounds more promising14:55
a good thing would be to allow commit objects to be tagged with hints14:56
like "this is a refactoring"14:56
so any future merges would see the hint and use the refactoring-merge strategy14:56
ShadeHawk not so easy, as now merge strategies (with possibly exclusion of recursive merge strategy), get only endpoints and mergebases, and don't walk commits15:00
to get hints you have to walk commits and gather those hints15:00
well, we could enhance git-merge-base to have an option to output those hints, marking somewhat (perhaps in --left-right fashion) to which branch those hints belongs on15:03
but IIRC we don't have even support fo "note" header15:03
so I think it should be better to browse through wdiff programs and alike (GNU wdiff, Emacs' Ediff etc.), shake dust of them, and do merge based on wdiff output and comparison to ordinary wdiff. Contents, not the road15:06
By the way, don't you think that [this discussion] would have better place on git mailing list and/or on git wiki?15:06
dwmw2_TPEdwmw2_gone15:21
_deepfire joined16:10
dwmw2_gonedwmw2_TPE16:11
_deepfire weird that git-cherr-pick and git-revert are different commands16:11
i think revert should be a cmdline flag-option for cpick16:12
does this question come up often enough? :-)16:12
ShadeHawk Actually, git-cherry-pick and git-revert _are_ the same command, they differ only in hardlink name (I think)16:14
see git-revert.sh in git sources16:14
_deepfire oh, it is the naming policy question then, i see16:15
i think with the current amount of git-* commands, any reduction to common denominator are sensible16:16
i had to guess the name of the command, and this time i was successful16:16
god knows what happens next time16:17
qballqbal116:23
qbal1Qball16:23
ShadeHawk cherry-pick and revert deals with different things. You usually revert commits in the same branch, you usually cherry-pick commits across branches.16:36
Newsome joined16:38
dwmw2_TPEdwmw2_zzz16:39
ShadeHawk GyrosGeier: The only problem with wdiff that is supposedly _slow_. And git pride is it's performance.16:42
s/is/it is/16:42
pasky isn't it prone to errors?16:43
(even in common cases)16:43
"I've introduced foo_t, in the meantime the other branch introduced foo_t too, so I'll rename my foo_t to foo_bang_t, then merge."16:44
Oops.16:44
(The other branch introduced different foo_t, obviously.)16:44
Or "I've renamed foo_t to foo_bang_t, the other branch renamed foo_t to foo_beng_t." What to do?16:44
note that noting this is as wrong as noting renames, because the user has even less clue about what happenned. If detecting it, it should be detected at merge time.16:45
(and pickaxe time?)16:45
_deepfire ShadeHawk, their man descriptions begin, respectively, with:16:49
pasky (cogito has cg-patch -C and cg-patch -R -C)16:50
(which isn't all that great either, but...)16:50
_deepfire Shadehawk, anyway, the usage difference and the concept difference are different differences16:51
Shadehawk, while the former may or may not be significant, the latter equals nearly zero16:51
Shadehawk, and it is the concepts that you should build the UI upon, not the usage16:52
ShadeHawk and neither you should build UI on _implementation_16:53
_deepfire ... which is not what i am proposing16:53
ShadeHawk pasky: my idea was to have in note header the tag to script which generates and script which reverses transformation16:53
pasky ShadeHawk: noone's gonna use that, especially if there's a single nontrivial substitution in the whole change16:54
_deepfire Shadehawk, the point is that <picking random changesets> + <applying them in both directions> is a very standalone concept16:54
ShadeHawk pasky: and the wdiff idea stems from Emacs Ediff/Emerge "refined" diff16:54
_deepfire well, s/random/specific/16:55
ShadeHawk _deepfire: similar, but not identical. I think it is a matter of taste if to use two differen commands for that (name of command as a switch), or one command with different switches16:56
pasky: I didn't even consider (with the wdiff idea) what to do in the case of conflicts16:56
_deepfire it is unwarranted concept splitting, and as such is harmful16:57
ok, enough of my opinion for today :-)16:57
ShadeHawk pasky: "noone's gonna use that": I've done 'great subroutines renaming' using script, and had script which reversed transformation for the sole purpose of rebasing the branch with rename (in gitweb)16:58
GyrosGeier well16:58
ShadeHawk and emails to the list included both scripts in comment section, by the way16:58
GyrosGeier currently I have to merge two branches of development16:58
one of them has mostly sane class_names16:58
(the other one has less-sane ClassNames)16:59
while the second branch implements new functionality16:59
ShadeHawk what _I_ did with "great subroutines renaming" of gitweb was to create two [Perl] scripts: one to revert changes, and one to create changes, so you can use it for cherry-picking, or in stage :2: or :1: and then use RCS merge/diff3/whatever manually (with one/two files after rename)17:06
otherwise, you can try to invent wdiff patch or wdiff merge17:07
pasky what if someone doesn't have perl installed?17:07
ShadeHawk sed or bash then. Perl is required for git, by the way (at least for parts of git)17:08
pasky the point was more general :)17:08
what if there's a backdoor in the renaming script?17:08
ShadeHawk yes, I know. I'm pointing a way to solve GyrosGeier problem, not to give generic solution17:08
that is a matter of trust and examining output17:09
pasky you'd need to run it jailed and with limited resources, ...17:09
well not planting backdoors in the code but in your system17:09
besides, what when git gets running on native windows?17:14
etc etc17:14
alley_cat joined17:34
kanru joined17:47
_deepfire left17:52
ShadeHawk ah, well. Or you can just put s/from/to/ in the [nonexistent] note header18:00
pasky why can't you put content movement information into note header either, then?18:03
CUTandRUN joined18:20
Gitzilla joined18:20
ShadeHawk well, you can, but it is harder to extract among the whole description of the _whys_ of change18:21
Sorry, I parsed the sentence wrong: it would be better to do content based rename detection, using some kind of wdiff, and [nonexistent] wpatch and wmerge18:22
and renaming information for porcelains was among one of the proposed uses of the note header18:22
besides I think you don't usually use script to move contents, while one I think usually use tools (even be they simple s/../../ script) for refactoring18:24
krh joined18:59
lyakh joined19:03
kanru joined19:06
_timlarson joined19:06
beuster joined19:06
lu_zero joined19:06
ruskie joined19:06
emrys joined19:06
pasky joined19:06
fullermd joined19:06
spuk- shouldn't git-clone --reference work with via-network repositories ?19:06
ShadeHawk not really. there are no remote alternates, and everything that --reference does is set up pointer where one can find old objects (alternate storage)19:10
which meanst tha only via-network is via network filesystem19:10
sgrimm joined19:12
Oejet joined19:12
spuk- but is it an implementation detail, or --reference can never work with network repositories due to some fundamental reason?19:12
ShadeHawk fundamental reason19:13
repository object database (storage) _must_ be available locally19:13
and alternates is a kind of symlink pointing: here you can get objects if there are not in repository database19:14
symlinks doesn't work across network, you know...19:14
spuk- hmm, ok, thanks19:15
but im not totally convinced :-p19:16
spearce joined19:16
pasky me neither19:18
I don't think where ShadeHawk comes from when saying that it's fundamentally impossible19:18
s/think/know/19:18
spuk- git-clone --reference via network protocols could be really nice for some people (like anyone not wanting to fetch a full mozilla repository)19:22
spearce that had shallow clones. :)19:22
ShadeHawk well, until lazy clone comes, and we have reaching objects through network... but I think it would be better to setup network filesystem like InterMezzo or Coda19:22
you don't have remote symlinks19:23
you don't have remote alternates19:23
(well, not yet, and I think not soon)19:23
pasky but there's no fundamental reason for that19:24
segher joined19:25
ShadeHawk like there is no fundamental reason for not having remote symlinks, eh?19:30
pasky if you have FUSE...19:32
but that's really different scale19:32
what you need to do is to just move remote protocols handling one level down to the ultra-core, but it's really different from adding that kind of stuff to the kernel19:34
Oejet pasky: Is not that how Plan 9 works?19:35
pasky I don't think so but I'm not sure anymore, it's been few years since I've been looking at Plan 9.19:36
robinr joined19:39
ShadeHawk one word (well, two): performance. caching.19:44
pasky that's the user's problem ;)19:44
ShadeHawk how slow git log -p would be, if run without limiters against lazy clone, eh?19:44
pasky very.. I think I've been writing about that on the mailing list some time ago19:44
ShadeHawk caching is the problem to solve if/when we ever implement lazy clones/remote alternates19:44
spuk- caching is "automatic", i think, just keep the fetched objects locally19:46
ShadeHawk for performance we eould have to extend git:// protocol to not download all what is missing, but only wjat's requested for things like git-cat-file, or git-show, or git-ls-tree19:46
nud joined19:46
ShadeHawk yeah, and you would have lazy clone till first operation on it (without extensions to fetching), then you would have whole repository doenloaded19:47
pasky spuk-: it's not really that easy, since with git log -p you'll get _all_ the history objects19:48
spuk-: but the thing is, since you're doing reachability on your side, you'll get them something like one-by-one19:48
spuk-: so you can't just naively extend the read_sha1_... routines19:48
spuk- i see19:49
ShadeHawk spuk-: if/when GitTorrent P2P protocol get's implemented perhaps it would be replacement for lazy clone/remote alternates?19:53
spuk- im not sure it is the same problem19:57
remote alternates would solve (at least): "I just want a checkout, but maybe I will want the history later, so I don't want to download it all, just what I need now"19:59
pasky I think an explicit command to get the history would be better in that case20:00
spuk- ok20:04
cods joined20:08
ShadeHawk spuk-: shallow clones are equivalent of saying: "I'm interested only in most recent history, if I want to dig deeper, I'll fetch it"20:18
but they don't work, yet (early beta stages I would say, available in repository)20:19
spuk- ah! didn't noticed it, sorry20:21
thanks20:21
spearce joined20:23
cods joined20:37
fatal_ joined20:42
fatal_ Hi. I have a project that I've been starting up on my workstation, now I've gotten so far as to see that it might be a good idea to start backing up stuff and maybe even tracking some history/changes. I'm not quite sure how to set up a new repo.... I want to have a public one (no working copy) on my server, and a working copy on my workstation... should I cg-init in my current source directory on the WS or should I start by running cg-admin-setuprepo on the se20:50
spearce cg-init locally.20:50
then you can do cg-admin-setuprepo on the server and finally push your work to the server.20:51
fatal_ ok, thanks... that would mean that there's no "origin" on my workstation copy, right? And there wouldn't be any benifit in having one?20:52
spearce you would want to set one up probably to refer to the server just to make things easier on yourself when you want to push changes. but initially right, there isn't one there.20:53
pasky if you're gonna push, origin is good because cg-push will default to push to origin20:53
you can add it using cg-branch-add origin url...20:53
and you actually can do cg-admin-setuprepo url... too20:53
spearce wonders what the difference is between cg-version and cg-version.in20:53
DrNick joined20:53
spearce cg-version.in isn't documented. but its on the main index page.20:53
fatal_ ok, thanks mates! Now I feel a bit more confident... :)20:53
pasky spearce: it's source for cg-version, cg-help just picks up all the cg- commands :)20:56
spearce so i just found a minor bug. :)20:57
i guess i should just stick with git-gui then.20:57
has anyone ever built qgit on mac os x?21:13
pasky some gentoo people apparently did according to google21:18
(not that I'd have any clue on how does portage play together with macosx)21:18
spearce darwinpots doesn't have a qt port.21:19
ahh, they have a qt3 port.21:20
robinr spearce: your fixed seemed to work here too21:24
s/fixed/fix/21:24
spearce since you were talking up qgit so much yesterday i figured i should install it and take a look see at the latest version.21:24
robinr experience of most git tools seems to be outdated if older than a month21:25
spearce robinr: good! i decided to rewrite that section using RandomAccessFile and a better LRU based buffer system, similar to what i did with the mmap windows in git. trying to support network streaming access to packs in the same code is insane; even core git doesn't bother with that. 21:25
robinr java has mmap too, but I wonder if it is usable21:25
Newsome left21:26
robinr to some extent it is, but is it enough for jgit21:26
spearce i almost used it in jgit but the problem with java's mmap is you can't really unmap something until the gc has collected it. this makes unmapping almost useless.21:26
so if we have large packs (e.g. mozilla) we probably can't use window mapping tricks to get to the data we need.21:26
robinr that would be ok, if there was a way to force gc, but there isn't21:31
spearce exactly21:32
robinr Have you read this one? http://bugs.sun.com/bugdatabase/view_bug.do;:YfiG?bug_id=472403821:33
spearce the way i'm going to rewrite it will be easier to slide in mmaping if someone finds a reasonable way to do it.21:33
robinr there is a workaround it seems21:33
spearce i'm still trying to download the url - my system is busy choking through a qt3 compile. just so i can run qgit.21:34
robinr qt is big...21:35
jwb joined21:35
spearce "This bug can be reproduced often." :-)21:36
robinr "This bug can only be reproduced when not looking for it" :(21:38
spearce Oh the other reason i didn't use mmaps is this is Eclipse and I use it on Windows; its not uncommon for my Eclipse workbench to take 400 MiB of memory and run for two weeks straight. If I mmapd a pack in egit I probably couldn't repack it without restarting my entire workbench first. :-(21:40
robinr spearce: have you noticed that your java formatting is bad for merging? It produces bad contexts for diffs, i.e. likely to match the wrong place21:47
spearce does it really? I never noticed that before.21:48
robinr I haven't seen in egit, but other code21:48
a context is typically three lines, like:21:48
spearce i use it elsewhere and i can't say i've had problems with it before.21:48
robinr }21:48
catch (IOException e)21:48
{21:48
spearce oh, yea, good point.21:48
robinr that could match in a lot of places21:49
spearce fine. you draft up a new formatting convention eclipse as project specific settings and get me the patch to apply; i'll reformat everything.21:49
robinr isn't the default one ok?21:49
spearce the default eclipse style?21:49
or the java style? (eclipse comes with both)21:49
robinr i'm fine with either21:50
spearce ok. reformatting is going to be a huge diff. :)21:50
robinr with a slight preference for the java conventions (8 byte tabs, 4 space indent)21:51
spearce: huuuge diff21:51
spearce dammit. my office is a freaking sauna with no themostat in it. so they taped up the air conditioner which occupies the only window. now its like 100 degrees in here. *sigh*21:52
robinr hmm, 100 degree does sound like a (slighly hot) sauna in my ears21:54
of course we have different degrees21:54
spearce doesn't help that there are also 7 computers in here with me.21:54
robinr where are you located?21:55
spearce albany new york area, usa. i'm a dumb american. :)21:55
robinr an ascii-only guy :)21:56
spearce sometimes i store my files as utf-8. :)21:56
robinr or is it isolatin1?21:57
it's a big problem here21:57
spearce i'm an ascii only guy and use utf-8 if i'm not using straight ascii. i hate the isolatin encodings, they cause more problems then they are worth imho.21:58
robinr we started using isolatin when there was no utf-821:58
spearce yea, that's a good point.21:59
robinr it was a big improvement over localized ascii21:59
Is your IRC client in UTF-8 mode now?21:59
spearce probably not. :)21:59
robinr main() ä printf("Hello worldÖn"); å22:00
spearce hah, i got ? rather than {.22:00
robinr that was what C looked like when I learned it22:00
ShadeHawk is it possible to make context for diffs (also for merging) _larger_ in git?22:01
robinr oops that was wrong22:01
main() ä printf("Hello worldÖn"); å22:01
spearce ok, a with two dots over it isn't a curly brace. :)22:02
ShadeHawk: git-merge-recursive uses merge, which i don't think takes a context parameter. git-diff and friends however i think do. 22:02
robinr our ascii was localized so {|} was remapped to äöå22:02
spearce oh that's insane.22:03
robinr [\] was ÄÖÅ22:03
seven bits required that some characters were redefined and those were never used by nontechnical people22:03
spearce is still waiting for qt3 to compile...22:04
robinr add to that the fact that the sorting order is åäö rather than the numerical code22:04
we would all use utf-8, but we have a legacy of iso-latin to consider22:05
spearce right, its like why apache has to support ebdic. :)22:06
my utf-8 bit was half a joke since 7 bit us-ascii is utf-8 already.22:06
robinr ebcdic is a small problem, few machines use it. iso-latin is everywhere i europe22:07
spearce but i've been burned in the past with xml transforms whacking higher characters such as the cents symbol, or the euro symbol if i'm not using utf-8 for everything.22:07
robinr yeah, it easy for you to switch to UTF-8, effectivel a noop22:10
spearce hah, eclipse wont' let me undo a massive reformatting.22:13
robinr :(22:13
hopefully git will22:13
spearce heh. yes. i laugh every time i see eclipse won't let me undo something, because i know i have it in git.22:14
robinr At work I was thinking of distribution a version of eclipse without the reformatting functions22:14
spearce why, are folks using them too often to create huge ugly diffs?22:15
robinr yes22:15
not only ugly, unmergable22:15
I'me slowly makeing the developers realized the huge value of a readable history22:16
and that it is much more important than using the "correct" formatting style22:16
spearce well the new "correct" egit formatting style is up on my website.22:17
robinr that quick :)22:17
spearce i had the same fight with other developers. but we've now gone through the pane of reformatting almost every file to a standard convention, and that was before we started to rely on git.22:18
dwmw2_zzzdwmw2_gone22:18
spearce its nice being able to just plop code into a file and hit shift-ctrl-f and let eclipse do the magic of making it readable.22:18
and knowing that the diff will be nice and short as the file was already previously formatted by it.22:18
yea i committed and pushed that change in git-gui. i'm still building qt3.22:19
robinr It seems I will only get conflicts on some debug statements22:23
here we go...22:23
jwbjwb_gone22:24
spearce finally has qt3 built.22:26
sgrimm joined22:29
spearce hmmrph: "make[2]: o: Command not found" apparently i lack o.22:29
sgrimm joined22:34
robinr oh22:35
spearce actually my problem was a bad configure script or makefile; uic and moc's variables weren't set so make removed them, then tried to run the "-o" option, which it read the "-" as ignore failure... cute.22:38
spearce is finally building qgit now.22:38
spearce hmm. qgit doesn't seems to understand a file that is different in the index in the working directory...22:45
robinr it doesn't have and index view22:48
to me the index is mostly confusing22:48
spearce it does have some nice features, but i'm used to gitk and seem to prefer its rendition of the tree.22:49
robinr it's something between the last checked in version and my working directory22:49
unclear what22:49
spearce that's more or less exactly what it is. i find it highly useful.22:49
robinr I think I understand it now, but I'd rather ignore it22:49
spearce but then again i find mktree useful too and i think junio thinks i'm nuts for that.22:50
robinr as I understand it it's like having stgit and one patch only22:50
spearce i never thought of it like that, but now that you mention it it makes sense.22:51
robinr and ofcourse a performance enhancer for git-pull22:51
pasky what's mktree?23:01
robinr The GPL has been enforced by a German Court it seems23:01
ah, old news23:01
sry about the noise23:02
Newsome joined23:02
spearce pasky: it takes the output of ls-tree on stdin, creates a tree object, and returns you the SHA1. useful for hacking a tree into place without actually loading an index. 23:04
CIA-12 Cogito: pasky v0.18 * r7b7e990ac319 /cg-object-id: cg-object-id -b shows current branch name23:05
pasky spearce: can't you do the same with a temporary index?23:06
spearce yes but it takes a while to load that index on a large tree. if you are only editing the root directory its much faster to use mktree. :)23:06
pasky hmm, I suppose so...23:07
CIA-12 Cogito: pasky v0.18 * rf7fc68e981fe /cg-patch: cg-patch -C: Hint about cg-commit -c if cherrypicking failed23:11
pasky hmm, perhaps cg-patch -C should do a merge instead of patch application?23:16
it would be better except that people might be confused that patch doesn't create .rej files but merge-style conflict markers23:17
GeertB joined23:18
spearce i think people could learn a new trick. :)23:30
mugwump omg, I have real files where a rename was not detected!23:31
not even a contrived change!23:31
spearce yea, i had a series of those a while back too.23:31
mugwump well, files are still reasonably small23:32
31 lines, one of them, and I just did a search & replace23:32
spearce mine were too, about 100 lines of java code. with only the 'package ...' line changing in the header of the file.23:32
sgrimm That's why I think git's rename handling is... well, let's just be polite and say less than optimal.23:37
mugwump I think there should be at least a convention for marking renames in the commit message... but even though I've found a real world case, it's still not one that I particularly care about23:38
sgrimm IMO the arguments in favor of git's rename algorithm smell a lot like the arguments against supporting transactions from the MySQL developers before they added transaction support.23:38
xjjk joined23:38
spearce its reasonably good most of the time. :-) since i really onlu use the rename handling to tell a CVS type system its may be better to rename the ,v (to keep history) vs. just add a new file (with no history) its better than nothing.23:38
mugwump I've actually found it better than explicitly tracking renames23:38
both approaches have their failings23:38
sgrimm No reason you can't combine the two, then, right? If a file vanishes, use the existing rename logic to see if it was renamed, but if it's explicitly renamed using a "git rename" command or whatever, use that information instead.23:39
mugwump sgrimm: the MySQL developers never added transaction support. somebody else re-implemented the database :)23:39
sgrimm mugwump: Fair enough, maybe I should have said "the arguments from the MySQL fanboy community." :)23:40
riddochc joined23:40
riddochc Hi, folks.23:41
sgrimm As for renames, in practice I use a wrapper script that does a commit of the file under the old name, renames it, and commits it under the new name. That way there is always an exact match for the file contents.23:42
mugwump yuck... dummy commits23:42
riddochc I'm putting together a talk about Git for tonight's Boulder Linux Users Group meeting. Thought it worth mentioning.23:43
mugwump riddochc: got some slides you want reviewing, perhaps?23:43
riddochc Working on it.23:43
spearce mugwump: yea but that dummy commit is an explicit rename recorded in a commit. :) 23:44
sgrimm mugwump: Yes, my feeling too. I'd much rather have an explicit rename that's not something else in reality, and can get committed atomically with a bunch of other changes (like content changes to the file being renamed.)23:45
But absent that, the dummy commit at least works in all the cases I've tried.23:45
(No good for directory renames if there are files in the dir with the same contents, I guess, but I haven't actually had that happen.)23:46
mugwump ooo, pizzas &23:46
tmokros joined23:48
robinr git finds the renames after git-cvsimport23:55
so even if CVS doesn't record them, git finds out anyway23:55
ShadeHawk there was some talk of having note-renames as _hints_ for rename detection23:55
spearce nobody produced working code for that if i recall...23:56
sgrimm robinr: Which is the big plus of git's rename system, and I certainly would keep it around for that reason (or to handle renames from non-git-aware tools.) But most often I'm renaming stuff by hand anyway.23:56
robinr if you are editing the ,v files making a copy is better than renaming it23:58
pasky (but still if you check out an older version you'll have the file there under both the new and old name)23:59
riddochc Hm... contributions welcome: what are some of the preconceptions that often get in the way of people understanding git?23:59
So far, I've got: Forget about Changesets, and There is no trunk.23:59

Logs Search ←Prev date Next date→ Channels Documentation