| 2008-12-05 |
| → ibuffy joined | 00:01 |
|
offby1
| doener: exactly -- if there's nothing to stash, Something Bad happens. | 00:01 |
|
| lemme see the current version | 00:01 |
|
| hmm, I'm sure I whined about that more recently than May | 00:02 |
|
doener
| no, with "&&" it still fails | 00:02 |
|
| stash does not set an exit code != 0 when there's nothing to stash | 00:02 |
| ← bbuss left | 00:03 |
|
offby1
| yup | 00:03 |
|
| nor, I suspect, should it | 00:03 |
|
doener
| right | 00:03 |
|
offby1
| But it'd be nice if it emitted predictable output | 00:03 |
|
| maybe it does | 00:03 |
|
| anyway. | 00:03 |
|
| now we know. | 00:03 |
|
doener
| well, "git diff --quiet HEAD && git stash && git stash apply" should do | 00:04 |
|
gitte
| offby1: if it were plumbing, yes, I'd like it to have predictable output. | 00:04 |
| ← LiamH left | 00:04 |
|
doener
| or rather, "(git diff --quiet || git diff --cached) && git stash ..." | 00:04 |
|
| gargh... the second diff should also have --quiet | 00:04 |
| ← jackdempsey left | 00:05 |
|
doener
| and it needs to be " || git stash" | 00:05 |
|
| doener should just stop trying | 00:05 |
| → bbuss joined | 00:06 |
| ← cilly left | 00:06 |
|
doener
| ok, "git diff --quiet && git diff --quiet --cached || (git stash && git stash apply) | 00:08 |
|
| that should do... | 00:08 |
| ← kuadrosx left | 00:09 |
| ← edwardam left | 00:12 |
| ← willb left | 00:12 |
|
offby1
| doener: ooh, clever | 00:13 |
| → hidek_ joined | 00:13 |
|
doener
| now I wonder if there was sarcasm in that... That's why I sometimes hate text-only conversations ;-) | 00:14 |
|
offby1
| there was no sarcasm. | 00:15 |
|
doener
| ok :-) | 00:15 |
|
offby1
| in fact I just send a memo to johnw suggesting he incorporate that | 00:15 |
|
doener
| thanks! | 00:15 |
| ← etherael left | 00:16 |
| ← gilimanjaro left | 00:17 |
| → ben_h joined | 00:18 |
| ← lolage0 left | 00:20 |
| → geckosen1tor joined | 00:23 |
| → Flathead joined | 00:23 |
| → selckin joined | 00:25 |
| ← gitte left | 00:26 |
| → sgarza joined | 00:27 |
| ← sgarza left | 00:28 |
| ← ankit9 left | 00:28 |
| → ankit9 joined | 00:28 |
| ← lresende left | 00:29 |
| ← branstrom left | 00:31 |
| ← ankit9 left | 00:37 |
| ← bdiego left | 00:37 |
| → ankit9 joined | 00:37 |
| → branstrom joined | 00:37 |
| → jstad_ joined | 00:38 |
| ← drewr left | 00:39 |
| ← aroben left | 00:41 |
| → gretch joined | 00:44 |
| ← ph^ left | 00:45 |
| ← __ash__ left | 00:45 |
| ← Yuuhi left | 00:48 |
| → edwardam joined | 00:49 |
| → univate joined | 00:50 |
| ← supercali left | 00:51 |
| → supercali joined | 00:52 |
| ← branstrom left | 00:52 |
| → qrush joined | 00:54 |
| mw → mw|out | 00:55 |
| ← hobodave left | 00:55 |
| → Jippi joined | 00:55 |
| → hobodave joined | 00:56 |
|
Jippi
| Hi. How do I delet a remote branch completely ? I have tried git branch -r -d 1.0 and git bracnh -D 1.0 - but its still on the server interface (unfuddle) | 00:56 |
|
doener
| git push <remote> :<branch> | 00:56 |
|
| that pushes "nothing" into the branch, and thus deletes it | 00:57 |
|
| "git branch" is purely local | 00:57 |
|
| IIRC "git push" is the only command that modifies a different repo than the one you're in | 00:57 |
| ← markelikalderon left | 00:58 |
|
Jippi
| ah - Thanks ! | 00:58 |
|
ben_h
| doener: so it's the colon that specifies you want to push nothing? | 00:58 |
|
| or do you first have to delete it locally? | 00:58 |
| ← gretch left | 00:58 |
| → metajack_ joined | 00:58 |
|
doener
| ben_h: no, the fact that there's nothing on the left side specifies that you push "nothing" | 00:59 |
|
| ben_h: no, no need to delete it | 00:59 |
|
ben_h
| ahh right | 00:59 |
|
Jippi
| doener: is it possible to retrive the tree again once deleted? | 00:59 |
|
| *branch | 00:59 |
|
doener
| ben_h: the full refspec format is <committish>:<ref> | 00:59 |
|
ben_h
| hmm | 00:59 |
|
doener
| ben_h: <branch> is DWIMmed to refs/heads/<branch>:refs/heads/<branch> | 01:00 |
|
ben_h
| so something like git push origin HEAD:branch | 01:00 |
|
doener
| ben_h: same for a tag, but with refs/tags | 01:00 |
|
ben_h
| ahhh right | 01:00 |
|
doener
| the default refspec for push is just : | 01:00 |
|
ben_h
| hmm that explains a lot | 01:00 |
|
doener
| and that means "look for branches that have the same name in this repo and the one I'm pushing to, and update them" | 01:00 |
| → __ash__ joined | 01:00 |
| → miggilinme joined | 01:01 |
| ← pcapriotti left | 01:01 |
|
doener
| Jippi: the _tree_ might still be referenced by other commits. The _branch_ can be resurrected by pushing it to the other repo again. | 01:01 |
|
miggilinme
| (Very new to git) I just pulled a branch from the git server, but when I enter "git branch" it doesn't show it | 01:01 |
|
| is there something I need to do to add the nre branch? | 01:01 |
|
| new* | 01:01 |
|
Pieter
| miggilinme: git branch -r | 01:02 |
|
cbreak
| if you pull from a branch | 01:02 |
|
| it usually merges into the current branch | 01:02 |
|
doener
| Jippi: whether you still have the respective commit depends on whether you still have the branch locally. If so, no problem. If not, there's a chance that the reflog for HEAD still has an entry for that commit | 01:02 |
|
miggilinme
| Pieter: still not showing | 01:02 |
|
| cbreak, that's odd, because I don't see the new files | 01:02 |
| → altfive joined | 01:02 |
|
cbreak
| well. I am not sure, I never did it myself :) | 01:03 |
|
doener
| miggilinme: "git pull <remote> <branch>" means "fetch this branch and merge it into the one I have checked out" | 01:03 |
|
| miggilinme: what's the exact command you used? | 01:03 |
| → jepler joined | 01:03 |
| ← elmex left | 01:03 |
|
miggilinme
| git pull server experimental | 01:03 |
|
doener
| Jippi: and if even the reflog doesn't have it anymore, and it has not been merged into another branch (which would of course keep the commit alive anyway), the objects might still be around, but dangling | 01:04 |
| → lukedal joined | 01:04 |
|
miggilinme
| doener: if you say so, I can check again to make sure it wasn't merged, I could be wrong | 01:04 |
|
| doener: ah, there it is | 01:04 |
|
cbreak
| do a git log | 01:04 |
|
miggilinme
| that wasn't what I had hoped for however | 01:04 |
|
cbreak
| it should show | 01:04 |
|
doener
| miggilinme: you can reset back to before the merge | 01:04 |
|
Jippi
| doener: okay. Thanks :) | 01:04 |
|
miggilinme
| doener: how? | 01:04 |
|
ben_h
| miggilinme: you could pastie the output of the pull command for us to look at | 01:05 |
|
miggilinme
| and then how do I get the branch as a new branch? | 01:05 |
|
doener
| miggilinme: check "git reflog show <your_current_branch>" | 01:05 |
|
miggilinme
| ben_h, i did it yesterday, long gone | 01:05 |
|
doener
| miggilinme: likely <your_branch>@{1} (the second entry} is the commit where you have been before the merge | 01:05 |
|
cbreak
| to get a remote branch, you would first fetch it, and then checkout -b it? | 01:05 |
|
ben_h
| miggilinme: i would first create a local branch and then pull into it. | 01:05 |
|
| might be a quicker way though. | 01:05 |
|
doener
| miggilinme: then you can do "git reset --hard <your_branch>@{1}" | 01:05 |
|
| miggilinme: now to your other problem. Do you want to repeatedly fetch (all) branches from that other repo, or just once? | 01:06 |
|
pastie
| ben_h: http://pastie.org/331479 by miggilinme. | 01:06 |
|
doener
| miggilinme: ah, so you pulled and then made a commit? | 01:07 |
|
miggilinme
| yes, but that commit is borderline useless | 01:07 |
|
| I'm a little confused by the sudden flow of responses, not sure what I should do | 01:07 |
|
ben_h
| miggilinme: panic | 01:07 |
|
doener
| ok, if it's useless, just "git reset --hard master@{2}". You'll be back at the initial commit then, ie. before the merge | 01:07 |
|
miggilinme
| should I reset to the initial commit? | 01:07 |
|
| ok | 01:08 |
|
| doener goes to order THHGTG for ben_h | 01:08 |
|
ben_h
| lol | 01:08 |
|
miggilinme
| ok, great, back to the head | 01:08 |
|
| and then create the experimental branch, switch to it and then pull? | 01:08 |
| ← parasti left | 01:08 |
|
doener
| miggilinme: no :-) | 01:08 |
|
| miggilinme: first, answer my question about your usage pattern for the other repo | 01:09 |
| ← zerok left | 01:09 |
| ← supercali left | 01:09 |
|
miggilinme
| what then? | 01:09 |
|
doener
| miggilinme: is that a repo from which you intend to fetch "regularly"? | 01:09 |
| alb → albertito | 01:09 |
|
miggilinme
| well yes, I imagine so | 01:09 |
|
| it's my project :) | 01:09 |
| ← withanx left | 01:10 |
|
doener
| miggilinme: then you'll want to have a "remote" for that repository | 01:10 |
|
| miggilinme: git remote add <name> <url-to-repo> | 01:10 |
|
miggilinme
| ejsy | 01:10 |
|
| erm, sorry | 01:10 |
|
| what's that for | 01:10 |
|
| ? | 01:10 |
|
doener
| miggilinme: that adds a "remote" section to the config. One aspect is that you can use the name of the remote as an alias for the url | 01:10 |
|
| miggilinme: the other is that the remote gets a default "fetch refspec" | 01:11 |
|
miggilinme
| in that case I think I do have that | 01:11 |
|
doener
| you already have a remote for that repo? | 01:11 |
|
miggilinme
| and a fetch refspec is? | 01:11 |
|
| yes | 01:11 |
|
ben_h
| I was thinking about the implementation of git's hashing the other night. Anyone here familiar with it? | 01:11 |
| → xaiki joined | 01:12 |
|
ben_h
| e.g. what is it that gets hashed to product a commit id - the literal patch, or the concatenated objects, or what? | 01:12 |
| → Bass10 joined | 01:12 |
|
doener
| "git fetch" (which does the fetch part of "git pull") takes a remote repo and some refspecs as arguments | 01:12 |
| ← lukedal left | 01:12 |
|
doener
| miggilinme: the refspec tells it what to fetch and where to store it | 01:12 |
|
| miggilinme: the default refspec for a remote fetch all branches from the other repository and stores them in refs/remotes/<remote>/<branch> | 01:13 |
|
miggilinme
| doener: so I want to make a refspec to tell it to fetch experimental and store it in a new branch called experimental? | 01:13 |
|
doener
| miggilinme: the default (fetching all branches) should be fine. And you'll also want the default behaviour of storing the stuff in so called "remote tracking branches" | 01:13 |
|
miggilinme
| so I want to enter "fetch refspec"? | 01:13 |
|
doener
| miggilinme: those branches just represent how a branch in another repo looks | 01:14 |
|
| miggilinme: what does "git remote" tell you? | 01:14 |
|
miggilinme
| <servername> | 01:14 |
|
doener
| ok, then "git fetch <servername>" | 01:14 |
|
| that should fetch the branches from <servername> and store them in refs/remotes/<servername>/<branch> | 01:15 |
|
| eg. refs/remotes/<servername>/experimental | 01:15 |
|
miggilinme
| so what's the difference between this and pull? | 01:15 |
|
| I mean, it gets the branches I guess | 01:15 |
| ← univate left | 01:15 |
|
doener
| pull is fetch + merge | 01:15 |
|
miggilinme
| but more technically | 01:15 |
|
| ah, ok | 01:16 |
|
| so this is no merge | 01:16 |
|
doener
| so pull is just a shorthand, pure convenience when you often just merge a branch | 01:16 |
|
miggilinme
| got it | 01:16 |
|
doener
| and fetch just gets the stuff and stores it somewhere | 01:16 |
|
| ok, now after the fetch, you should get some output from "git branch -r" | 01:16 |
|
miggilinme
| ok, it tells me now that it added the branch | 01:16 |
|
doener
| the -r means that "git branch" lists the remote tracking branches | 01:16 |
| ← __ash__ left | 01:16 |
|
miggilinme
| yes, I see the branches listed | 01:17 |
|
| ok, I guess I can figure from here then | 01:17 |
|
| thanks | 01:17 |
|
doener
| ok, now, you can use those remote tracking branches "as usual". You can for example do "gitk <servername>/experimental" | 01:17 |
| → markelikalderon joined | 01:17 |
|
doener
| or "git log master..<servername>/experimental" to see what the remote branch has, that your master branch doesn't | 01:18 |
|
miggilinme
| alright, thanks | 01:18 |
|
doener
| you're welcome | 01:18 |
| ← geckosen1tor left | 01:18 |
| → univate joined | 01:19 |
| → vbabiy joined | 01:20 |
| ← cgardner left | 01:22 |
| → geckosenator joined | 01:23 |
| → gretch joined | 01:26 |
| ← miggilinme left | 01:27 |
| → ebzzry joined | 01:28 |
| → agenteo joined | 01:30 |
| ← xaiki left | 01:31 |
| ← scsiraider left | 01:33 |
| → scsiraider joined | 01:34 |
| ← hidek_ left | 01:34 |
|
ben_h
| flazz: yep - http://gems.github.com/ | 01:35 |
|
| bah wrong chan | 01:35 |
|
flazz
| ben_h: thanks | 01:36 |
|
ben_h
| :) | 01:36 |
| ← edwardam left | 01:36 |
| → edwardam_ joined | 01:36 |
|
doener
| ben_h: for a second, I thought you were psychic or something ;-) | 01:36 |
|
ben_h
| doener: i am, but that's unrelated | 01:37 |
| → bobmcw joined | 01:37 |
|
doener
| :-) | 01:37 |
|
ben_h
| doener: lol, your comment before + that reminded me of this: http://en.wikipedia.org/wiki/List_of_minor_characters_from_The_Hitchhiker's_Guide_to_the_Galaxy#Dr._Dan_Streetmentioner | 01:38 |
|
jast
| ben_h, how many fingers am i holding up right now then? | 01:38 |
|
ben_h
| jast: π | 01:38 |
|
jast
| not quite, i'm afraid | 01:38 |
|
ben_h
| :) | 01:38 |
|
flazz
| ben_h: so say i have a gemspec, is there a way to have git put the current tag in the version field? | 01:39 |
|
doener
| flazz: git describe | 01:39 |
|
pfharlock
| how does one do the equivalent of bzr missing in git? | 01:39 |
|
ben_h
| not sure sorry flaz | 01:39 |
|
doener
| pfharlock: what does "bzr missing" do? | 01:40 |
|
pfharlock
| sorry, it looks at two branches and will display any revisions missing from one or the other | 01:40 |
|
doener
| pfharlock: git log <branch1>...<branch2> | 01:40 |
|
flazz
| doener: thanks | 01:40 |
| ← ebzzry left | 01:41 |
|
doener
| pfharlock: three dots mean "commits reachable from one side or the other, but not both" | 01:41 |
|
| pfharlock: you'll probably want --left-right with that, to see from which side each commit comes | 01:41 |
| → ebzzry joined | 01:41 |
|
doener
| pfharlock: especially nice with gitk | 01:41 |
|
pfharlock
| cool, thankyou very much, I'll give it a test drive | 01:42 |
|
doener
| pfharlock: to see stuff that's only on one side use A..B == B --not A == stuff reachable from B but not from A | 01:42 |
| → sdboyer_ joined | 01:42 |
|
doener
| (that's often more useful if you, for example, want to see what you're going to merge from some other branch) | 01:43 |
| ← univate left | 01:43 |
|
albertito
| I've got a repository on machine A, where I do (very minor) kernel development. I have another repository (this one bare) on machine B which I use for backups. The upload link from A to B is very slow. The link between B and kernel.org is very good (continued below) | 01:44 |
|
offby1
| do go on | 01:44 |
| → univate joined | 01:45 |
|
albertito
| Now, instead of A pushing everything to B, I want B to get everything it can from kernel.org, so A pushes as little as possible | 01:45 |
|
offby1
| sure | 01:45 |
|
doener
| albertito: fetch in the bare repo | 01:45 |
|
albertito
| I obviously cloned from k.o, worked great | 01:45 |
|
| Pushed once, worked great. But the fetch seems to make no difference | 01:45 |
|
| It wants to transfer what I think it's too much. But I'm not quite sure, and I don't know how can I tell | 01:45 |
|
| Any ideas on how can I see some list of ids it wants to transfer, or something like that, so I can get a clue on what might be going on? | 01:46 |
|
doener
| albertito: how did you fetch in the bare repo? | 01:46 |
|
| albertito: did you add a remote for k.o? | 01:47 |
|
albertito
| doener: git fetch git://k.o | 01:47 |
|
| doener: no | 01:47 |
|
doener
| that would store stuff in FETCH_HEAD, not sure if is considered for pushes to determine what needs to be pushed | 01:48 |
|
albertito
| doener: I thought it could make a difference, if it didn't took FETCH_HEAD into account. Should I? | 01:48 |
| → harinath joined | 01:48 |
|
albertito
| doener: =) | 01:48 |
|
| doener: I'll try the remote | 01:48 |
| → PhilK joined | 01:48 |
|
offby1
| I'd be very surprised if refs on the bare repository mattered. I'd assume that "git push" simply asks the remote repository what objects it has, and only pushes those that it doesn't already have. | 01:50 |
|
| whether there are any refs pointing to those remote objects seems, to me, to be irrelevant | 01:50 |
|
albertito
| doener: it worked, thanks! However, now I have a "linus/master" branch on my backup repo. I'm not worried about it because it's a backup, but it doesn't seem like it should be this way | 01:50 |
| ← PhilK left | 01:51 |
|
albertito
| offby1: maybe it needs some tip where to start looking for things | 01:51 |
|
doener
| offby1: you need something efficient to figure out which objects the remote has | 01:51 |
|
| offby1: I guess it just iterates the branches/tags | 01:51 |
|
offby1
| hmm | 01:51 |
|
| bummer | 01:51 |
|
doener
| looking at the code right now | 01:51 |
|
offby1
| this question could easily be resolved by an experiment. But I'm too lazy to do it :) | 01:51 |
|
albertito
| offby1: in any case, it worked as expected adding the remote. But I think it should consider FETCH_HEAD too, unless I'm missing something (which is probably the case =) | 01:51 |
|
doener
| albertito: you could also do "git fetch k.o master:linus" to have a "linus" branch instead | 01:52 |
|
offby1
| well, as you can see, _I_ think it should consider _all_ objects | 01:52 |
|
albertito
| doener: good idea. However, in this particular case, having a remote _is_ conveniant to me, I'll just do git remote update before pushing, it's easier than copy-paste the k.o url | 01:53 |
|
doener
| albertito: you can change the "fetch = " line in the config for that remote | 01:53 |
|
albertito
| offby1: that was what I was expecting in the first place, and when it seemed not to behave that way I asked here =) | 01:53 |
| ← edwardam_ left | 01:53 |
| → ebzzry_ joined | 01:54 |
| ← blithe left | 01:54 |
|
doener
| offby1: hm, how would you look for common objects then? Bisecting the whole local history asking the remote for each one? (Just wondering, brain doesn't spit out anything smart for me) | 01:54 |
|
albertito
| offby1: thanks! I'm actually happy (in this case) with the "linus/" prefix, but I'll keep that in mind | 01:54 |
| ← harinath left | 01:54 |
| → perezd88 joined | 01:55 |
| → harinath joined | 01:55 |
| ← selckin left | 01:55 |
| → blithe joined | 01:55 |
|
offby1
| doener: I dunno. "I have <<very long list of objects>> ... tell me which you want" | 01:56 |
|
| deskin wonders if it'd be relatively easy to use all commits which aren't ancestors, instead of just refs | 01:56 |
|
deskin
| though that doesn't feel quite right; some refs are could be duplicates, but maybe it really just ignores the overhead | 01:57 |
| ← harinath left | 01:57 |
|
albertito
| deskin: aren't those non-trivial to determine? | 01:57 |
| ← sdboyer left | 01:57 |
|
albertito
| bbiam | 01:57 |
|
deskin
| probably :/ I'm trying to think of a sane way | 01:57 |
| → harinath joined | 01:57 |
|
deskin
| which doesn't involve looking at all history | 01:57 |
|
| doener is still trying to find out what it actually does now | 01:57 |
|
offby1
| maybe if you just run 'git-upload-pack' and examine the output ... | 01:58 |
|
doener
| yeah, but there's also the non-fast-forward case, I wonder if that does some smart cross-repo merge base search then | 01:59 |
|
deskin
| isn't this find_common()? I recall looking at Thomas Rast's log-n transmission patch, but that was in my early days of git development, and that patch is deep magic | 02:00 |
| ← Zimm left | 02:01 |
|
doener
| ah, thanks! Been looking at the wrong end | 02:01 |
|
offby1
| that's what my doctor said | 02:02 |
|
| *rimshot* | 02:02 |
|
ben_h
| lol | 02:02 |
|
jast
| http://instantrimshot.com/ | 02:02 |
| → threeve joined | 02:03 |
|
deskin
| anyone know thomas's IRC handle? IIRC he's been on here but I don't know if he frequents #git | 02:03 |
| ← joydivider left | 02:04 |
| ← jstad left | 02:04 |
| ← jstad_ left | 02:04 |
| ← scsiraider left | 02:05 |
|
flazz
| is it safe to set spec.version = `git describe` ? | 02:06 |
| → scsiraider joined | 02:08 |
| ← ebzzry left | 02:08 |
| ← softdrink left | 02:08 |
| ToxicFrog` → ToxicFrog | 02:09 |
| → softdrink joined | 02:09 |
| ← ankit9 left | 02:10 |
| ← harinath left | 02:13 |
| → harinath joined | 02:13 |
| ← unreal left | 02:14 |
| ← ahupp|fb left | 02:15 |
| → unreal joined | 02:15 |
| → ahupp|fb joined | 02:16 |
| → sdboyer-laptop joined | 02:18 |
| ← softdrink left | 02:19 |
| ← bobmcw left | 02:20 |
| ← stephens left | 02:21 |
| ← carllerche left | 02:21 |
| → Richo99 joined | 02:23 |
| ← ciaran left | 02:23 |
|
Richo99
| Hi, I want to move a commit on main to a branch, how do I do that? | 02:23 |
| → _VVSiz_ joined | 02:24 |
| ← perezd88 left | 02:25 |
| → perezd88 joined | 02:25 |
| ← mw|out left | 02:25 |
| → lordpil joined | 02:26 |
| ← markelikalderon left | 02:27 |
|
doener
| deskin: ok, out of boredom, I did some mail/irc log search. Seems that his handle is "charon" | 02:27 |
| → ezyang joined | 02:27 |
|
deskin
| ah, that sounds rigth | 02:28 |
|
doener
| deskin: http://colabti.org/irclogger/irclogger_log/git?date=2008-08-29,Fri#l890 | 02:28 |
|
deskin
| not on now unfortunately; though I wouldn't expect it | 02:28 |
|
doener
| that's how I found out :-) | 02:28 |
|
deskin
| nice | 02:29 |
| ← Flathead left | 02:29 |
|
deskin
| /whois for the win; but memory for the lose in my case | 02:29 |
| → Flathead joined | 02:30 |
|
| deskin needs to write that IRC bot that learns people's nick/ realname mappings so deskin doesn't have to remember | 02:31 |
| → ahupp|fb_ joined | 02:32 |
| ← lordpil- left | 02:39 |
| → ceej joined | 02:39 |
|
ceej
| hey all, whats the command to roll back one as the last git update just messed things up | 02:40 |
| ← ijcd left | 02:40 |
| → Tv joined | 02:40 |
| ← VVSiz_ left | 02:41 |
|
geckosenator
| ceej: revert | 02:41 |
|
ceej
| do i need to enter a parent number though? | 02:42 |
| _kukks_ → kukks | 02:42 |
|
ceej
| no way to go backj just one without looking that up? | 02:42 |
|
| :/ | 02:43 |
|
doener
| ceej: do you mean "git commit" by "git update"? | 02:43 |
|
ceej
| No I just pulled the latest master to my production server | 02:44 |
|
| and now it's erroing out, is there away to go back to the previous state? | 02:44 |
| cbrake → cbrake_away | 02:44 |
|
doener
| if you didn't do anything else yet, "git reset --hard master@{1}" | 02:44 |
|
| but it's safer to first lookup the right reflog entry, "git reflog show master" | 02:45 |
| ← jesselucas left | 02:45 |
|
doener
| (both commands assuming that you pulled into the master branch) | 02:45 |
|
ceej
| ok, thank you | 02:45 |
|
| that didn't appear to go back one | 02:46 |
|
| still the same as master | 02:46 |
| ← ahupp|fb left | 02:46 |
|
doener
| which one didn't go back? | 02:46 |
| ← flaguy left | 02:46 |
| → neuro_damage joined | 02:47 |
| ← bbuss left | 02:47 |
|
neuro_damage
| how do I have the same repo hosted at multiple different locations | 02:47 |
|
ceej
| hmmm still erroring out :/ | 02:47 |
|
doener
| ceej: so you had "master" checked out, did a "git pull" and then "git reset --hard master@{1}", right? | 02:48 |
|
ceej
| ye | 02:48 |
| ← ebzzry_ left | 02:48 |
| ← gambler left | 02:48 |
|
doener
| well, that should have resetted master to before the merge and also made the working tree equal to the tree for that commit | 02:49 |
|
| ceej: "git branch" actually says you have master checked out right now, right? | 02:49 |
|
ceej
| yes | 02:50 |
|
| it gives me messages like HEAD is now at c1a4266 deleted files that are not suposed to be here. | 02:50 |
| ← neuro_damage left | 02:50 |
|
doener
| so master was reset to the commit | 02:50 |
|
| note: master@{1} _changes_ when you do a reset... | 02:51 |
|
| use "git reflog show master" to lookup which reflog entry is the one that refers to the pre-pull state | 02:51 |
|
| most likely, it's the first one _after_ the first "pull : ..." line | 02:52 |
|
ben_h
| qrush: lolol | 02:52 |
|
| oh god damn it | 02:52 |
|
| qrush: lolol | 02:52 |
| ← sgrimm left | 02:52 |
|
| ben_h apologises | 02:52 |
|
doener
| and then use that entry with "git reset --hard master@{n}", replacing n with the right number | 02:52 |
|
ceej
| doener:your correct but it doesn't seem to be putting the files back to the privous state | 02:53 |
|
qrush
| ben_h: what | 02:53 |
|
ben_h
| qrush: #github, i failed to select the right chan | 02:53 |
|
qrush
| i saw ;) | 02:53 |
|
ben_h
| :) | 02:53 |
|
doener
| ceej: but you used --hard, right? Does "git log -1" show the right thing? And if so, is "git status" clean? | 02:53 |
| → Tv1 joined | 02:55 |
|
doener
| ok, 4am, off to bed... good luck :-) | 02:55 |
|
ceej
| doener: thank you :) | 02:56 |
| ← kukks left | 02:56 |
|
albertito
| doener, offby1: I'm off to bed, thanks a lot! | 02:58 |
| ← unreal left | 03:00 |
|
offby1
| yay | 03:01 |
| → unreal joined | 03:01 |
| → qrush_ joined | 03:02 |
| ← Tv left | 03:03 |
| ← unreal left | 03:04 |
| ← bts- left | 03:05 |
| → unreal joined | 03:06 |
| → quoin joined | 03:07 |
| ← brett_h left | 03:18 |
| ← spearce left | 03:20 |
| ← vbabiy left | 03:22 |
| ← ahupp|fb_ left | 03:23 |
| → loincloth joined | 03:24 |
| → EmilMedve joined | 03:27 |
| ← univate left | 03:32 |
| ← unreal left | 03:34 |
| → unreal joined | 03:35 |
| ← pygi left | 03:38 |
| → Mario__ joined | 03:38 |
| → ben_h_ joined | 03:38 |
| → imyousuf joined | 03:39 |
| ← rtomayko left | 03:41 |
| → nice_burger joined | 03:42 |
| ← agile left | 03:43 |
| → agile joined | 03:46 |
| → nothingHappens_ joined | 03:46 |
| ← ben_h left | 03:46 |
| → gambler joined | 03:48 |
| → ceej_ joined | 03:48 |
| → EiNZTEiN joined | 03:48 |
| → __ash__ joined | 03:55 |
| ← pfharlock left | 03:56 |
| ← ceej left | 03:56 |
| → offby1` joined | 03:58 |
| ← schlort left | 04:02 |
| → schlort_ joined | 04:02 |
| → univate joined | 04:07 |
| ← Tv1 left | 04:11 |
| ← Modius left | 04:11 |
| ← offby1 left | 04:13 |
| → IRSeekBot joined | 04:15 |
| ← qrush_ left | 04:15 |
| offby1` → offby1 | 04:20 |
| ← schlort_ left | 04:20 |
| ← qrush left | 04:21 |
| → nikolasco joined | 04:23 |
| → jonshea joined | 04:24 |
| → ahupp|fb joined | 04:25 |
| ← k0001 left | 04:25 |
| → ebzzry joined | 04:26 |
| → schlort joined | 04:28 |
| → muthu_ joined | 04:29 |
| ← scientes left | 04:33 |
| → fhobia joined | 04:36 |
| → ben_h joined | 04:38 |
| ← nothingHappens_ left | 04:40 |
| ← dreiss left | 04:41 |
| → ben_h- joined | 04:41 |
| → girishr joined | 04:42 |
| ← ferdy left | 04:42 |
| → sgrimm joined | 04:44 |
| → Tv joined | 04:46 |
| → carllerche joined | 04:48 |
| → ferdy joined | 04:51 |
| ← Flathead left | 04:52 |
| ← murphl left | 04:52 |
| → jackdempsey joined | 04:53 |
| → qrush joined | 04:54 |
| → cedricv joined | 04:55 |
| ← Bass10 left | 05:03 |
| → mithro joined | 05:03 |
| → cgardner joined | 05:08 |
| ← cgardner left | 05:09 |
| → cgardner joined | 05:09 |
| → tjafk2 joined | 05:10 |
| ← sdboyer-laptop left | 05:12 |
| → tpiep joined | 05:14 |
| → girishr_ joined | 05:14 |
| → murphl joined | 05:16 |
| ← girishr left | 05:16 |
| ← crab left | 05:17 |
|
Ryan52
| offby1: what did I do wrong here? http://slexy.org/view/s20n55kjaA | 05:22 |
| ← bartman left | 05:22 |
|
offby1
| hole on | 05:23 |
|
Ryan52
| offby1, I didn't actually test what you told me the other day :p | 05:23 |
|
offby1
| that's OK, I have no recollection of what I told you the other day | 05:23 |
|
| and am too lazy to look in my logs | 05:23 |
| ← tpiep left | 05:23 |
|
offby1
| ah, that's easy. | 05:23 |
|
| you forgot to prepend the directory name: f6 | 05:24 |
|
| git cat-file -t _f6_53bbeb8482959d6131424204e57c9b75bf9b1b | 05:24 |
|
| so that's the 25 Mb blob, eh? | 05:24 |
|
Ryan52
| ah. you didn't explain that part to me :) | 05:24 |
|
| yup. but there are more :p | 05:24 |
|
| hrm. fatal: Not a valid object name _f6_53bbeb8482959d6131424204e57c9b75bf9b1b | 05:25 |
|
offby1
| DUDE! Isn't it OBVIOUS that SHA1s are always 40 characters? | 05:25 |
|
| I mean REALLY | 05:25 |
|
| Ryan52: the _ were just for emphasis! | 05:25 |
|
Ryan52
| ohhhh. | 05:25 |
|
| hehe :p | 05:25 |
|
| offby1 whistles innocently | 05:25 |
| ← Mario__ left | 05:25 |
|
Ryan52
| you think that I was actually smart enough to count the number of characters? :p | 05:25 |
|
| well, obviously I wasn't. | 05:26 |
|
| but I mean a normal person :) | 05:26 |
|
| hrm. blob. that was helpful. | 05:26 |
|
| *reads man page* | 05:26 |
|
offby1
| that just means it's a file. | 05:26 |
| ← tjafk1 left | 05:26 |
|
offby1
| git show f653bbeb8482959d6131424204e57c9b75bf9b1b > wot-is-it | 05:26 |
| → loinclot_ joined | 05:26 |
|
offby1
| less wot-is-it | 05:26 |
|
| it could have been a commit, a tag, or a tree. | 05:27 |
|
| (Although all of those are _very_ unlikely to be 25 Mb.) | 05:27 |
|
Ryan52
| hrm. looks like a binary file...what do I do now? :) | 05:28 |
| ← harinath left | 05:28 |
|
offby1
| file wot-is-it | 05:28 |
|
Ryan52
| I need to figure out what the file name is so I can filter-tree it out. | 05:28 |
|
offby1
| that'll try to guess what it was | 05:28 |
|
| oh, the name shouldn't be hard. | 05:28 |
|
| just find every tree object in your repository, and then run "git ls-tree" on it, and grep for the SHA1 ... :-| | 05:29 |
|
| I hope there's an easier way but that's all I can think of | 05:29 |
| → harinath joined | 05:30 |
| → not-xjjk joined | 05:30 |
|
Ryan52
| hrm. okay, I guess that's fairly easily scriptable...thanks. | 05:31 |
| → zwu joined | 05:31 |
| ← xjjk left | 05:31 |
| → joshdavey joined | 05:31 |
| ← loincloth left | 05:31 |
| ← sdboyer_ left | 05:34 |
| → sdboyer_ joined | 05:35 |
| sdboyer_ → sdboyer | 05:35 |
|
| Ryan52 filter-branches | 05:35 |
|
feindbild
| does 'git log -S' work on character bases for the changes it matches? | 05:36 |
|
| s/bases/basis/ | 05:36 |
|
offby1
| as opposed to byte? I doubt it. | 05:36 |
|
| git seems aggressively byte-oriented | 05:37 |
|
| that's the sort of question that could be easily resolved with a simple experiment, I'd think | 05:37 |
|
feindbild
| no ... sorry ... I meant as opposed to diff lines | 05:37 |
|
offby1
| now I _really_ don't understand. | 05:37 |
|
feindbild
| :/ | 05:39 |
|
| ok, take this as example pseudo-diff: http://pastebin.ca/1276624 | 05:40 |
| → context joined | 05:40 |
|
context
| hmm, is it easily possible to re-write history removing the git-svn-id's from commit's (yes i realize all hashes change) | 05:41 |
| ← pete__c left | 05:41 |
|
tpope
| context: it's possible. it's easier to just disable them on import | 05:42 |
|
offby1
| feindbild: ok, I've looked at that, but ... it doesn't help me understand your question | 05:42 |
|
feindbild
| it seems: git log -S'12346' finds the commit, but I want to do: git log -S'this.getById' - which doesn't ... I want to match the whole line of the diff ... if that is possible :( | 05:42 |
| → pete__c joined | 05:42 |
|
offby1
| really? git log -S'this.getById' doesn't find that commit? | 05:42 |
|
| hmm | 05:42 |
| → Marmouset joined | 05:44 |
| ← girishr_ left | 05:44 |
|
offby1
| interesting | 05:44 |
|
| I think I'm starting to understand feindbild's question | 05:44 |
|
| and have no answer. | 05:45 |
|
| all I can say is: maybe it internally stores diffs, not as the line-by-line changes that we're used to from the output of "diff", but rather in some more-efficient format ... and if a particular commit's "diff" doesn't mention part of the line, then you won't find the commit by spelling out that line | 05:47 |
|
| so what you want to do is: find all commits that changed any line that itself includes "this.getById", even if the change itself didn't affect that particular bit of the line. | 05:47 |
|
feindbild
| yes | 05:48 |
|
offby1
| you'll probably have to get each diff separately, and grep 'em :-| | 05:48 |
|
feindbild
| :D | 05:48 |
|
| yay! | 05:48 |
|
offby1
| maybe --pickkaxe-regexp works differently ... tried it? | 05:48 |
|
feindbild
| not yet ^^ | 05:49 |
| → Rivelli joined | 05:49 |
|
offby1
| don't think it'll help | 05:49 |
|
| sounds like a question for a real expert. | 05:50 |
| → hobodave_ joined | 05:51 |
| → AaronLBorg joined | 05:51 |
| ← __ash__ left | 05:52 |
|
AaronLBorg
| noob git question alert....... | 05:52 |
|
| that noob would be me. | 05:52 |
|
| offby1 races to the "noob git question" station and readies himself | 05:53 |
|
AaronLBorg
| ok.... | 05:53 |
|
offby1
| Shields engaged, sir! | 05:53 |
|
AaronLBorg
| now you got me all nervous! | 05:53 |
|
offby1
| RELAX!!!! | 05:53 |
|
AaronLBorg
| ....make me forget my question...... | 05:53 |
|
| ok... | 05:53 |
|
| offby1 helpfully blows an air horn | 05:53 |
|
AaronLBorg
| i have a site on a remote server | 05:53 |
|
offby1
| mm hm | 05:53 |
|
AaronLBorg
| [air horn snaps him outuvit] | 05:54 |
|
| offby1 assumes the psychoanalyst pose, behind the couch, with a pad and pen | 05:54 |
|
offby1
| do go on. | 05:54 |
|
AaronLBorg
| it is one of many sites | 05:54 |
|
| and all of the other sites have git installed | 05:54 |
|
| i would like to install it in MY site now | 05:54 |
|
| and I need to know the best way to do that *server-wise* | 05:55 |
|
| offby1 scratches head | 05:55 |
| → priidu joined | 05:55 |
|
AaronLBorg
| is it any different than a local install? | 05:55 |
|
offby1
| what does "server-wise" mean here? | 05:55 |
|
| Does it mean you cannot get a shell on your site? | 05:55 |
|
AaronLBorg
| ah ha....doc. you ask great questions! | 05:55 |
|
| yes, i got a shell | 05:55 |
|
offby1
| please, let's keep the focus on you. | 05:55 |
|
AaronLBorg
| rather, i have access to a shell | 05:55 |
|
| yes......after all...it is my session | 05:56 |
|
| offby1 turns his family portrait over, face-down | 05:56 |
|
AaronLBorg
| OR.............. | 05:56 |
|
| offby1 subtly gives his receptionist the signal that means "in two minutes, knock and tell me I have an important phone call" | 05:56 |
|
AaronLBorg
| [deletes stuff] | 05:56 |
|
| can i just download a tar locally and then scp up there and untar it? | 05:57 |
|
| seems likely, doc | 05:57 |
|
offby1
| seriously, I'm not sure what the problem is. | 05:57 |
| ← ezyang left | 05:57 |
|
AaronLBorg
| well, would that work [says sheepishly] | 05:57 |
|
| ? | 05:57 |
|
offby1
| The usual way to get something via git is to type "git clone url://server.com/path/to/git-repository" | 05:57 |
|
AaronLBorg
| is it important where that repository goes? i'm assuming it is | 05:58 |
|
offby1
| that's up to you. | 05:58 |
| → ezyang joined | 05:58 |
|
offby1
| or to the software running on your server. | 05:58 |
|
AaronLBorg
| well, if this is a drupal site, right? | 05:58 |
|
offby1
| if it's a web site, I assume it needs to go in /var/www or someplace similar | 05:58 |
|
| I've never used drupal but I have a vague notion of what it is. | 05:58 |
|
AaronLBorg
| yes, that's what i'm thinking | 05:58 |
|
offby1
| so ... let me get this straight | 05:58 |
|
| there are a number of sites, all running drupal, and all serving up the _same_ site. | 05:59 |
|
AaronLBorg
| but lets say my site is located in /var/www/gitidiot.com | 05:59 |
|
offby1
| Or at least, close variants of the same site | 05:59 |
|
| sure, ok | 05:59 |
|
AaronLBorg
| no serving up different sites! | 05:59 |
|
| lemme clear this out......... | 05:59 |
|
offby1
| are you using git to keep a bunch of separate servers in sync? | 05:59 |
|
AaronLBorg
| no! | 05:59 |
|
offby1
| oh | 05:59 |
|
| then | 05:59 |
|
| what? | 05:59 |
|
AaronLBorg
| this is a server that has many different sites on it | 05:59 |
| ← context left | 06:00 |
|
offby1
| oK | 06:00 |
|
| like a hosted server. | 06:00 |
|
| one where some company runs it, and you install your little site on it, right next to 200 other people, each with their own sites. | 06:00 |
|
AaronLBorg
| like this: /var/www/public_html/gitidiot.com AND /var/www/public_html/idontknowgit.com ETC.... | 06:00 |
|
offby1
| sure | 06:00 |
|
AaronLBorg
| yes, but i work at the company ;-) | 06:00 |
|
| never had to install git myself | 06:00 |
|
offby1
| ok, so you're the hosting guy | 06:00 |
|
AaronLBorg
| i'm a dev | 06:01 |
|
offby1
| well, _installing_ git is easy | 06:01 |
|
AaronLBorg
| hangs head in shame | 06:01 |
| → girishr_ joined | 06:01 |
|
offby1
| likely your *nix distro has a package. | 06:01 |
|
| e.g., on Ubuntu it's "aptitude install git-core" | 06:01 |
|
| on Redhat or CentOS I guess it'd be "yum install git" | 06:01 |
|
AaronLBorg
| ok...but you sure there isn't a specific place for it to go? | 06:01 |
|
offby1
| failing that, it's pretty easy to build from source | 06:01 |
|
| AaronLBorg: er? | 06:01 |
|
AaronLBorg
| yes? | 06:01 |
|
offby1
| like any software, it can go anywhere, | 06:01 |
|
| there are conventions ... /usr/bin/git and /usr/local/bin/git are common | 06:02 |
|
| are we talkin about the same thing? | 06:02 |
|
AaronLBorg
| i think so | 06:02 |
|
offby1
| "What we have here is a ... failure to communicate" | 06:02 |
|
AaronLBorg
| no, i think it's going good | 06:02 |
|
| getting me thinking anyway | 06:02 |
|
offby1
| so you're not _really_ asking a question about git; you're more asking about installing software in general ... and git just happens to be the thing you have in mind to install at the moment. | 06:02 |
|
AaronLBorg
| if i want to clone that site to my local though......... | 06:02 |
|
| well, i'm in the git room no? | 06:03 |
|
offby1
| ok, now you've changed the subject, and are talking about _using_ git. | 06:03 |
| ← loinclot_ left | 06:03 |
|
AaronLBorg
| if i want to clone....does it matter where it is? | 06:03 |
|
offby1
| nothin' wrong with that | 06:03 |
|
| it surely doesn't matter where the "git" binary is in order for you to use it. | 06:03 |
| ← madewokherd left | 06:03 |
|
AaronLBorg
| that's what i needed to know, amigo! | 06:03 |
| ← threeve left | 06:03 |
|
offby1
| i.e., you might type "/usr/bin/git clone git://server/repository.git" or you might instead type "/usr/local/bin/git clone git://server/repository.git" | 06:04 |
|
| but the effect will be the same. | 06:04 |
| → karmi joined | 06:04 |
|
AaronLBorg
| thank you! | 06:04 |
|
offby1
| may I ask what kind of development you do? | 06:04 |
| ← hobodave left | 06:07 |
| ← hobodave_ left | 06:12 |
| ← mithro left | 06:12 |
| → reithi joined | 06:13 |
|
offby1
| *gap* | 06:14 |
|
| *gasp* | 06:14 |
|
| Tukwila, WA? | 06:14 |
|
| Why that's ... just down the street | 06:14 |
|
| Kenmore, WA?! | 06:16 |
|
Ryan52
| offby1, what are you talking about? ;) | 06:16 |
|
offby1
| AaronLBorg. | 06:16 |
|
| I tend to /whois people. | 06:17 |
|
| He lives surprisingly near me. | 06:17 |
|
Ryan52
| oh :) | 06:17 |
|
offby1
| I also run off at the mouth. | 06:17 |
| ← japhb left | 06:17 |
| → japhb joined | 06:17 |
|
AaronLBorg
| what's been going on behind my back! | 06:18 |
|
| ? | 06:18 |
|
| clear this line out... | 06:18 |
|
| there | 06:18 |
| ← qrush left | 06:18 |
|
offby1
| I've /whois'd you down to the block | 06:18 |
|
AaronLBorg
| man..... | 06:18 |
|
| is nothing sacred | 06:18 |
|
| ? | 06:18 |
|
Ryan52
| 19:22 < robin> git verify -v <pack> can list all objects in a pack | 06:19 |
|
| git: 'verify' is not a git-command. See 'git --help'. | 06:19 |
|
| hrm. | 06:20 |
|
| offby1, any ideas? | 06:20 |
|
| I accidently repacked my stuff.. | 06:20 |
|
| so now the tricks you taught me don't work. | 06:20 |
|
offby1
| *sob* | 06:20 |
|
| I think you're omitting a hyphen | 06:20 |
|
| git verify-pack | 06:20 |
|
Ryan52
| okay. | 06:21 |
|
| thanks | 06:21 |
| ← ahupp|fb left | 06:24 |
| → vbabiy joined | 06:25 |
| ← vbabiy left | 06:28 |
|
robinr
| Ryan52: oops, git verify-pack | 06:30 |
| → crab joined | 06:34 |
|
Ryan52
| robinr: any idea how to figure out what filename and/or commit a blob is associated with? :) | 06:35 |
|
| I'm getting by by looking at it, and thinking a bit, but...ya. | 06:35 |
|
| If I weren't so familiar with this project that would be hard. | 06:36 |
| ← bgerber left | 06:38 |
| → carllerche_ joined | 06:39 |
|
offby1
| I imagine you can enumerate all the objects in the repository(!) ... filter out those that aren't trees ... then run "git ls-tree" on each, and grep the output for your SHA1. | 06:39 |
| ← carllerche left | 06:40 |
|
Ryan52
| I can't figure out how to get rid of the stray objects now. I tried "git repack -A" and then "git gc --prune", but that didn't make any difference...and I know I killed off most of the big objects, | 06:41 |
| → bgerber joined | 06:41 |
|
Tv
| Ryan52: you could rev-list to get all the commits, then run ls-tree -r on each one, grepping for your blob | 06:41 |
|
| Ryan52: prune will only remove objects that are old enough | 06:41 |
| → hobodave joined | 06:42 |
|
Ryan52
| so I want to set gc.reflogExpireUnreachable to 0? | 06:42 |
| ← agenteo left | 06:42 |
|
Tv
| Ryan52: well you can do that on the command line.. that'd be for git reflog expire | 06:43 |
|
| Ryan52: and *then* the gc thingie can kick in, and it has it's own age minimum | 06:43 |
| ← hobodave left | 06:44 |
|
Ryan52
| so how do I do this correctly? | 06:44 |
|
Tv
| oh you might need gc.reflogexpire, not just expireunreachable | 06:44 |
|
| Ryan52: throw away all unused objects, even if they aren't old enough yet? | 06:44 |
|
Ryan52
| yes. | 06:44 |
|
Tv
| Ryan52: 1) make sure the repo is not being used while you do it | 06:45 |
|
Ryan52
| okay. | 06:45 |
|
Tv
| 2) git reflog expire --expire=now --expire-unreachable=now --all | 06:46 |
|
Ryan52
| okay. | 06:46 |
|
Tv
| 3) git prune --expire=now | 06:46 |
|
| that should do it | 06:46 |
|
Ryan52
| hrm. should I run "git repack -A" before step 3? | 06:47 |
|
| cause that did almost nothing. | 06:47 |
|
Tv
| yeah | 06:47 |
|
| you should | 06:47 |
|
Ryan52
| okay, thanks! | 06:47 |
|
Tv
| Ryan52: afterwards you should have nothing in .git/objects/?? | 06:48 |
|
| oh and repack -A -d | 06:48 |
|
Ryan52
| ugh.fatal: sha1 file '.git/objects/pack/tmp_pack_bRLxWZ' write error (No space left on device) | 06:49 |
|
Tv
| or a separate run of git prune-packed | 06:49 |
| → Voker57 joined | 06:49 |
|
Ryan52
| sweet! | 06:51 |
|
| 18 .git/ | 06:51 |
|
| 18 megabytes. | 06:51 |
|
| it was 400 when I started :) | 06:51 |
|
| thanks so much Tv and offby1 and robinr! :) | 06:51 |
| → moccuo joined | 06:53 |
|
moccuo
| when i clone a git repositository, and the repo i cloned from gets changed. how can i update my cloned repo to get the new changes? | 06:54 |
|
| (from github) | 06:54 |
| ← Jacolyte left | 06:54 |
|
Tv
| moccuo: try reading the tutorial.. | 06:55 |
|
offby1
| Ryan52: repay us by writing up what you did and getting it put into the FAQ :-| | 06:55 |
|
| moccuo: "git pull" | 06:55 |
|
| Tv: I hope I haven't violated an implicit Code of Pedagogy :-| | 06:56 |
|
Tv
| offby1: nah, but you're now going to be the go-to guy for any questions answered by the tutorial | 06:56 |
|
Ryan52
| gah. I shoulda done this in "script", then. | 06:57 |
|
| I shoulda for myself, too.. | 06:57 |
|
Tv
| Ryan52: well the commands are pretty much in the channel backlog now, just write it up nicely & add to faq | 06:57 |
|
Ryan52
| ya, I know :) | 06:57 |
|
moccuo
| offby1: hmm, it says its already up to date. | 06:57 |
|
Ryan52
| where does this FAQ live? | 06:58 |
|
moccuo
| that's strange. considering i just pushed some changes to github | 06:58 |
| ← harinath left | 06:58 |
|
Tv
| moccuo: from that same repository? or before the clone? | 06:59 |
|
Ryan52
| oh, found it :p | 06:59 |
|
moccuo
| hmm, it seems that they didnt get pushed.. | 06:59 |
|
offby1
| moccuo: probably the branch you're on locally doesn't automatically pull from the branch to which you just pushed. | 06:59 |
|
Ryan52
| I'll add it sometime in the next week, I promise :). Now that I almost have successfully moved from svn to git, I need to do some actual programming :p | 07:00 |
|
offby1
| naw! | 07:00 |
|
| _real_ programmers fiddle with their tool configuration eight hours a day. | 07:00 |
|
moccuo
| offby1: im trying to pull from my server that im ssh'd into. i pushed from my local system onto github. | 07:00 |
|
Ryan52
| lol | 07:00 |
|
| offby1 makes a sweeping gesture towards his .emacs, which stretches to the horizon | 07:00 |
|
offby1
| moccuo: you could look at the file .git/config on your server, and see if it says that the branch you're on is supposed to pull from github. | 07:01 |
|
Tv
| offby1: you should wrap your lines | 07:01 |
|
moccuo
| offby1: well i just checked github and it appears that the push i did didnt go throught fro some reason | 07:02 |
|
| so the server is actually up to date. | 07:02 |
|
offby1
| Tv: for Christmas? | 07:02 |
|
Tv
| offby1: no to avoid them stretching to the horizon | 07:02 |
|
offby1
| aah. | 07:02 |
| ← ben_h- left | 07:02 |
|
moccuo
| oooh no. i did something bad | 07:02 |
|
| :( | 07:03 |
|
offby1
| I heard a baby scream. Was that you? | 07:03 |
|
| murderer | 07:03 |
|
moccuo
| haha | 07:03 |
|
| i freezed rails in my repo. and then did a "git push" thinking it would go to github. but it went to my development repository on the same system, which should NOT have rails frozen. ugggh | 07:04 |
| ← reithi left | 07:05 |
|
moccuo
| this is my first time deploying rails, hehe | 07:05 |
| → reithi joined | 07:06 |
| ← up_the_irons left | 07:07 |
| → up_the_irons joined | 07:07 |
| ← ben_h_ left | 07:08 |
| ← Arafangion left | 07:08 |
| ← doener left | 07:08 |
| → doener joined | 07:09 |
| ← ben_h left | 07:11 |
|
| Ryan52 filter-branches again...this is starting to get fun ;) | 07:11 |
|
Ryan52
| how many different places could these people put database dumps? I'm on the third filter-branch, one of which made use of a glob. -_- | 07:12 |
| → aspotashev joined | 07:12 |
| ← sverrej left | 07:13 |
| ← murphl left | 07:15 |
| ← karmi left | 07:17 |
|
Ryan52
| now it's down to 6 megabytes!!!! :) | 07:19 |
| ← esden left | 07:22 |
| → Weaselweb joined | 07:33 |
| → bentob0x joined | 07:38 |
| → ashleyw joined | 07:40 |
| ← aspotashev left | 07:41 |
| → xjjk joined | 07:42 |
| ← cliffstah left | 07:44 |
| → cliffstah joined | 07:44 |
| → ijcd joined | 07:46 |
| ← ijcd left | 07:47 |
| ← Arachnid left | 07:47 |
| ← PerlJam left | 07:47 |
| → PerlJam joined | 07:47 |
| → Arachnid joined | 07:48 |
| → thijso joined | 07:48 |
| → reel_ joined | 07:50 |
| ← bobesponja left | 07:51 |
| → tjogin joined | 07:53 |
| ← not-xjjk left | 07:53 |
| → doiuf joined | 07:54 |
| → quoin- joined | 07:54 |
| ← nice_burger left | 07:55 |
| → ben_h joined | 07:55 |
| ← japhb left | 07:56 |
| ← sgrimm left | 07:57 |
| → japhb joined | 07:58 |
| ← ben_h left | 08:01 |
| → ben_h joined | 08:03 |
| ← ironfroggy_ left | 08:04 |
| ← ezyang left | 08:04 |
| ← ben_h left | 08:05 |
| → harinath joined | 08:09 |
| → jmesnil joined | 08:10 |
| ← robinr left | 08:10 |
| ← quoin left | 08:12 |
| ← Richo99 left | 08:12 |
| → naeu joined | 08:14 |
| → mithro joined | 08:17 |
| → mcella joined | 08:18 |
| ← jackdempsey left | 08:19 |
| ← altfive left | 08:20 |
| → karmi joined | 08:21 |
| → zerok joined | 08:24 |
| ← naeu left | 08:24 |
| → gilimanjaro joined | 08:26 |
| ← girishr_ left | 08:27 |
| → girishr_ joined | 08:27 |
| → JonathanT joined | 08:29 |
| → lucsky joined | 08:31 |
|
lucsky
| 'morning | 08:31 |
|
Ryan52
| oh, shit, that bug that spearce said would be fine ruined my whole switchover. I can't rebase at all. | 08:39 |
|
| error: Untracked working tree file 'vendor/plugins/railspgprocs/README' would be removed by merge. | 08:39 |
|
| could not detach HEAD | 08:39 |
|
| anybody know how I can tell it to add -f to that? :p | 08:39 |
|
| git-rebase has no -f.. | 08:39 |
|
| Ryan52 reads teh source code | 08:40 |
|
| Ryan52 hacks teh source code :( | 08:41 |
| → solydzajs joined | 08:41 |
|
drizzd
| Ryan52: if you have an untracked file, you obviously have a dirty working directory | 08:42 |
|
| git will not allow you to randomly overwrite that with any command | 08:42 |
| → elmex joined | 08:42 |
|
drizzd
| so either move the file out of the way, or add and commit it | 08:42 |
|
Ryan52
| drizzd: I added -f to the git-checkout in git-rebase, it's taken care of. :) | 08:42 |
|
| it's not that the file is untracked. | 08:42 |
|
| it's a bug in git. | 08:42 |
|
| trust me on this, I had 3 of the smart people in here look and agree with me :) | 08:43 |
|
| at least three.. | 08:43 |
|
drizzd
| ok, I've known to be wrong ;-) | 08:43 |
| → drizzd_ joined | 08:44 |
|
Ryan52
| oh, crap, but I did have another untracked working tree file...not the one it was erroring about, tho. | 08:45 |
| ← ibuffy left | 08:45 |
|
| Ryan52 hates bugs, especially when he's too stupid to fix them :p | 08:45 |
|
Ryan52
| another == a real one :) | 08:45 |
| ← tango_ left | 08:46 |
| → ibuffy joined | 08:46 |
| → naeu joined | 08:47 |
| → charon joined | 08:48 |
| ← gretch left | 08:49 |
| → sverrej joined | 08:49 |
| ← mithro left | 08:50 |
| → radarek joined | 08:52 |
| ← carllerche_ left | 08:54 |
|
Ryan52
| uhhhhhhh....does git not handle renames of files? or is that just git-svn that doesn't? | 08:54 |
|
mxey
| Ryan52: Git does not track renaming. | 08:54 |
|
Ryan52
| so if I rename filea to fileb and run "git-log fileb" it won't show me the history of when it was filea? | 08:55 |
| ← karmi left | 08:55 |
|
Ryan52
| I know it doesn't "track" it, but, I mean, it is aware of it in some cases, I know. | 08:55 |
|
wanders
| Try git log --follow | 08:55 |
|
Ryan52
| oooooooooo....that's a bug :p | 08:56 |
|
| so I had had two branches with a file named the same thing. | 08:56 |
|
| and I was gonna merge them together. | 08:56 |
|
| so I had to rename the file in one of the branches first. | 08:56 |
|
| so I did, and I merged. | 08:57 |
|
| now if I use --follow it shows me the history of both files :( | 08:57 |
| ← CodeOfficer left | 08:57 |
|
Ryan52
| whatever. I'll get over it. :p | 08:57 |
| → ankit9 joined | 08:58 |
|
Ryan52
| sadly svn handles this right... | 08:59 |
|
| Ryan52 gets over it and moves on | 08:59 |
|
Voker57
| svn doea not have real branches | 09:00 |
|
Ryan52
| I know. that's why I'm moving to git :) | 09:00 |
| ← drizzd left | 09:03 |
| ← bronson left | 09:04 |
| → rtomayko joined | 09:08 |
| ← ankit9 left | 09:08 |
| ← naeu left | 09:08 |
| → ankit9 joined | 09:09 |
| ← xjjk left | 09:10 |
| ← univate left | 09:14 |
| → xjjk joined | 09:14 |
| tjogin → tjogin|away | 09:16 |
| ← ibuffy left | 09:17 |
| → ibuffy joined | 09:17 |
| → tango_ joined | 09:20 |
| → markelikalderon joined | 09:23 |
| ← chalky left | 09:23 |
| → twiinz joined | 09:28 |
|
twiinz
| Hi there | 09:28 |
| → univate joined | 09:28 |
| → hurikhan|Work joined | 09:28 |
|
twiinz
| is it possible to target a single folder from a repository ? Say i've got a remote repository that has a few folders, each having a set of scripts inside, can I just pull 1 subfolder and not the whole repository? | 09:29 |
|
mxey
| twiinz: no. | 09:30 |
|
twiinz
| fair enough hehe | 09:30 |
| ← gilimanjaro left | 09:30 |
| tjogin|away → tjogin | 09:33 |
| ← markelikalderon left | 09:38 |
| ← ankit9 left | 09:40 |
| → nud joined | 09:40 |
| → ankit9 joined | 09:41 |
| ← synchris left | 09:42 |
| → ceyusa joined | 09:43 |
| → synchris joined | 09:43 |
| ← perezd88 left | 09:44 |
| ← Marmouset left | 09:47 |
| → pcapriotti joined | 09:50 |
| ← mjc left | 09:51 |
| ← drizzd_ left | 09:54 |
| ← moccuo left | 09:56 |
| ← ceej_ left | 09:58 |
| → chalky joined | 10:00 |
| ← feindbild left | 10:03 |
| → joevandyk joined | 10:04 |
| → vaskaren joined | 10:05 |
| ← ia left | 10:07 |
| ← joshdavey left | 10:09 |
| ← reel_ left | 10:15 |
| ← muthu_ left | 10:17 |
| → reel_ joined | 10:17 |
| → reel__ joined | 10:17 |
| ← reel__ left | 10:18 |
| → ia joined | 10:23 |
| ← fhobia left | 10:25 |
| ← univate left | 10:25 |
| → univate joined | 10:31 |
| → davik joined | 10:32 |
| → eddyp joined | 10:33 |
| → m3y3ring joined | 10:36 |
| ← m3y3ring left | 10:37 |
| → m3y3ring joined | 10:37 |
| ← ankit9 left | 10:40 |
| ← synchris left | 10:40 |
| → ankit9 joined | 10:40 |
| → synchris joined | 10:40 |
| → jfontan joined | 10:48 |
| ← univate left | 10:49 |
| → univate joined | 10:50 |
| → |kukks| joined | 10:51 |
| → bartocc joined | 10:56 |
| → sping_work joined | 10:59 |
|
sping_work
| hello | 10:59 |
| ← vmiklos left | 11:02 |
| → vmiklos joined | 11:02 |
| ← sping_work left | 11:05 |
| → sping_work joined | 11:07 |
|
sping_work
| Hello! Is there a way to specify a default remote for push and pull other than origin? | 11:08 |
| ← rtomayko left | 11:08 |
| → not-xjjk joined | 11:10 |
| → aspotashev joined | 11:11 |
| → xlq joined | 11:15 |
|
xlq
| What to do if you've just messed up your first git commit in the repository? (Can I make another orphan?) | 11:16 |
|
sping_work
| My setup is a read-only origin that I pull from and a remote "backup" that I only push to. That's why I'm wondering. Any ideas? | 11:16 |
|
xlq
| I suppose I'll start again. | 11:18 |
| ← imyousuf left | 11:19 |
| → lorandi joined | 11:19 |
|
DrNick
| xlq: git commit --amend | 11:19 |
|
xlq
| oh right | 11:20 |
| ← xjjk left | 11:21 |
| ← kanru left | 11:23 |
| → Angel2009 joined | 11:23 |
|
Angel2009
| Buenos dias | 11:23 |
| ← Angel2009 left | 11:24 |
| → kanru joined | 11:27 |
| → xjjk joined | 11:28 |
| ← ceyusa left | 11:31 |
| ← metajack_ left | 11:34 |
| → tzafrir_laptop joined | 11:36 |
|
tzafrir_laptop
| how can I add a git submodule from the directory ../ ? | 11:36 |
| → ceyusa joined | 11:36 |
|
tzafrir_laptop
| I have two local repositories that were made with git-svn | 11:37 |
|
| One of them is an external of the other | 11:37 |
| ← not-xjjk left | 11:39 |
| → grahal joined | 11:39 |
|
tzafrir_laptop
| wow, working with submodules to replicate svn:externals is so much work | 11:41 |
|
| I can't see myself writing simple instructions to explain someone else how to do that | 11:41 |
| → asdfiest joined | 11:42 |
| ← vaskaren left | 11:42 |
| ← ebzzry left | 11:44 |
| → ebzzry joined | 11:45 |
| ← davik left | 11:49 |
| ← dancor left | 11:49 |
| → not-xjjk joined | 11:51 |
| → lroar joined | 11:52 |
|
lroar
| Hi -- I'm doing "git diff" and there's one file in git's index I don't want to be part of the resultant patch I want to create from the git diff output -- can i tell git to forget this file when generating this patch? | 11:53 |
| ← jmesnil left | 11:57 |
| → joshdavey joined | 11:57 |
| → scientes joined | 11:57 |
|
| tzafrir_laptop uses a symlink instead :-( | 11:59 |
| ← xjjk left | 12:02 |
| ← Gitzilla left | 12:07 |
|
telmich
| lroar: maybe use git diff $(git diff --name-only | grep -v your file) | 12:07 |
| → Gitzilla joined | 12:10 |
| → temoto joined | 12:12 |
|
temoto
| Hello. I want to import commit from another repo. That is, i want to replay commit changes and comment and keep author from one just separate repo. | 12:13 |
| ← lroar left | 12:14 |
|
temoto
| more precisely i want to import one repo into another commit-by-commit. | 12:14 |
|
| so repo2 will become subdir of repo1 | 12:14 |
| ← LotR left | 12:16 |
| → LotR joined | 12:16 |
| cbrake_away → cbrake | 12:19 |
| → simmerz joined | 12:19 |
| → asodm joined | 12:20 |
|
asodm
| hi! | 12:20 |
|
simmerz
| Hi. I'm trying to set up a gitosis server, and I thought I'd done it, but in trying to add one of my developers to the config, I had an error saying: "WARNING:gitosis.ssh:Unsafe SSH username in keyfile: '<keyfilename>'". when that user tries to clone the repo, it just asks him for the git user password on the server rather than granting access. | 12:20 |
|
asodm
| is there some way to grep through all revisions and not just head? | 12:20 |
| → knobo joined | 12:22 |
| → naeu joined | 12:22 |
| → kyle___ joined | 12:24 |
|
kyle___
| i keep getting could not find any SCM named `git' | 12:24 |
|
| when doing cap deploy:check | 12:24 |
|
| but i know i have git installed | 12:24 |
|
knobo
| Is it possible to make git handle cvs "$Id$" tags some way? | 12:24 |
|
temoto
| kyle___, git-core on ubuntu. | 12:25 |
|
| kyle___, cap is capistrano? | 12:25 |
|
kyle___
| yes | 12:25 |
|
temoto
| kyle___, nice thing? | 12:25 |
| ← twiinz left | 12:25 |
|
kyle___
| i don't know, i'm a n00b | 12:26 |
|
temoto
| k :) | 12:26 |
|
kyle___
| what do you mean git-core on ubuntu | 12:26 |
|
temoto
| kyle___, git package is named git-core in ubuntu distribution. | 12:26 |
|
| kyle___, basically, i mean try checking for git-core. | 12:26 |
|
kyle___
| i know ive done sudo apt-get install git-core like 2 times | 12:27 |
|
| but the version numbers are different on ubuntu and os x, is that right? | 12:28 |
|
xlq
| asodm: git-grep? | 12:29 |
|
asodm
| asodm: right. but by default it only searches through the current revision, no? | 12:29 |
| → rolfb joined | 12:34 |
|
knobo
| Did nobody have issuses with magic keywords like $Id$ from rcs/cvs/svn? | 12:36 |
| ← LotR left | 12:36 |
|
doener
| asodm: what exactly are you looking for? A string that once existed but is gone now? | 12:36 |
|
asodm
| doener: yep.. and i wanna find out in which revision(s) it existed and where. | 12:37 |
| → ashleyw_ joined | 12:37 |
|
doener
| git log -S'string' | 12:37 |
|
| shows commits that added or removed "string" | 12:37 |
|
| (only add/remove, not move) | 12:38 |
| ← tzafrir_laptop left | 12:38 |
|
doener
| (per file though IIRC, so if "string" moved from file A to file B, that would be shown) | 12:38 |
| ← eddyp left | 12:39 |
|
temoto
| kyle___, of course they could be and most probaly are different. | 12:39 |
| → Ryback_ joined | 12:39 |
| → d0k joined | 12:42 |
| ← univate left | 12:42 |
| → gitte joined | 12:42 |
| → LotR joined | 12:45 |
|
asodm
| doener: perfect. thanks! | 12:47 |
| → netoman joined | 12:47 |
| ← asodm left | 12:48 |
| → _Vi joined | 12:51 |
| ← ashleyw left | 12:52 |
|
knobo
| You are ignoring me :( | 12:52 |
|
| I could make a perl skript that solves my problem. Is it possible to make some hooks that runs my script on every checkout and commit? | 12:54 |
|
broonie
| knobo: http://thread.gmane.org/gmane.comp.version-control.git/44750 | 12:54 |
| ← EmilMedve left | 12:54 |
|
Pieter
| knobo: see man git-attributes | 12:54 |
|
| oh | 12:55 |
|
| man gitattributes | 12:55 |
|
Gitbot
| Pieter: the gitattributes manpage can be found at http://git.or.cz/man/gitattributes | 12:55 |
| → xjjk joined | 12:56 |
| → lukedal joined | 12:58 |
|
knobo
| thanx. Is it possible to customize the indent option some how? | 13:00 |
| ← _Vi left | 13:00 |
| → PhilK joined | 13:00 |
| → _Vi joined | 13:00 |
| → univate joined | 13:01 |
| → d0k_ joined | 13:03 |
| → bobmcw joined | 13:04 |
| → jmesnil joined | 13:08 |
| ← awarde left | 13:09 |
| ← Voker57 left | 13:09 |
| → Voker57 joined | 13:09 |
| → snitko joined | 13:11 |
| ← not-xjjk left | 13:12 |
|
snitko
| hi, how do I get a remote branch to the local machine? just can't find that simple thing in google | 13:12 |
| ← d0k left | 13:12 |
|
doener
| snitko: git fetch, if you want to repeatedly fetch from that repo, add a remote for it | 13:13 |
|
snitko
| hm, that's not exactly what I want. I have master locally. I want to also have a 'xxx' branch locally. exactly, what should I do? | 13:14 |
|
doener
| so you just want to create a new branch? How does a remote branch come into play there? | 13:15 |
|
temoto
| git branch xxx | 13:15 |
|
doener
| Maybe you're just missing the concept of remote tracking branches? | 13:15 |
| → vaskaren joined | 13:15 |
|
temoto
| doener, i'm missing if you're going to cast that. | 13:15 |
|
doener
| temoto: sorry, could you rephrase that? I'm not a native speaker and don't understand the "to cast that" part :-/ | 13:16 |
| ← xjjk left | 13:16 |
|
doener
| snitko: My guess right now is: You cloned a repo, got a master branch, but on the remote repo, there's also a xxx branch, and you're looking for that one? | 13:17 |
|
snitko
| right | 13:17 |
|
temoto
| doener, if you're going to explain. | 13:18 |
| → xjjk joined | 13:18 |
|
doener
| snitko: ok. To provide truly disconnected operations, git stores the state of branches on a remote in so called remote tracking branches. | 13:18 |
|
temoto
| doener, i'm not a native speaker also and i'm feeling free to invent new words sometimes :) | 13:18 |
|
doener
| snitko: by default, if you fetch from a remote called "origin" (default name for the remote for the repo you cloned), all remote branches are stored locally in refs/remotes/origin/<remote-branch-name> | 13:19 |
|
temoto
| git pull remote xxx xxx | 13:19 |
|
doener
| snitko: those remote tracking branches are listed by "git branch -r" | 13:19 |
|
xlq
| Is there a way to have two working copies from one .git dir? | 13:19 |
|
doener
| temoto: no, that would merge xxx twice into the current branch | 13:19 |
|
xlq
| i.e. to save space | 13:19 |
|
doener
| xlq: if you clone locally, git uses hardlinks | 13:20 |
|
xlq
| oh right, didn't notice :D | 13:20 |
|
snitko
| doener: ok, that I got. | 13:20 |
| → cmarcelo joined | 13:20 |
|
temoto
| oh well, i don't know then... git branch xxx ; git checkout xxx ; git pull remote xxx | 13:20 |
|
doener
| xlq: you can also use alternates and something else I don't remember, see man git-clone | 13:20 |
|
Gitbot
| xlq: the git-clone manpage can be found at http://git.or.cz/man/git-clone | 13:20 |
|
doener
| xlq: and finally, there's a git-new-workdir script somewhere in contrib/ | 13:20 |
| ← quoin- left | 13:21 |
|
doener
| xlq: that does exactly what you're asking for, but it has some drawbacks, IIRC basically the same that are mentioned for the alternates setup in the clone manpage | 13:21 |
|
temoto
| I used git-clone with hardlinks and it was very fine experience. Quite no problems. there is --no-hardlinks switch also | 13:21 |
|
doener
| snitko: ok. Those remote tracking branches are updated by "git fetch origin" (thanks to the default config for that remote) | 13:21 |
| ← univate left | 13:22 |
|
doener
| snitko: now, you can basically use those remote tracking branches like any other ref. | 13:22 |
|
xlq
| O_o ok thans doener | 13:22 |
|
doener
| snitko: eg. you can do "git log origin/master..master" to see commits that your local master branch has, but the remote tracking branch doesn't have | 13:22 |
|
| snitko: in the same way, you can use the remote tracking branch to specify a starting point for a branch you create | 13:22 |
|
| snitko: git branch xxx origin/xxx | 13:23 |
|
| snitko: that creates a local branch called xxx that starts at the same commit as origin/xxx | 13:23 |
|
| snitko: local branches are generally only needed if you intend to actually work on them (ie. create commits) | 13:23 |
|
| snitko: if you just want to _look_ at how things are, there's no need to create a local branch, you can just use the remote tracking branches instead | 13:24 |
|
| snitko: after creating the local branch, you can switch to it using "git checkout xxx". And you can also use the "git checkout -b xxx origin/xxx" shorthand, which combines the two commands | 13:24 |
|
| snitko: that is, it creates a xxx branch and checks it out | 13:25 |
| → Zimm joined | 13:25 |
|
doener
| snitko: everything clear as mud now? ;-) | 13:25 |
|
snitko
| doener: I got everything, except the part about not having them locally. How can I look at the changes in those branches and not have them locally? | 13:25 |
| ← asdfiest left | 13:26 |
| → univate joined | 13:26 |
|
doener
| snitko: you _do_ have them locally. The "local branch" term is just what I happen to use to differentiate between them and the remote tracking branches | 13:26 |
|
eMBee
| run git branch -a; to see all branches (local and remote) | 13:27 |
|
doener
| snitko: remote tracking branches are just as local, all required objects are there. But they represent the state of remote branches, at the time of the last fetch | 13:27 |
| → asn joined | 13:28 |
|
asn
| So, I'm editing my local kernel tree and I make some changes (add some files, edit some others, etc.). I then want to return it to it's starting state. I do a git checkout -f, but the files that I created in my local copy are still there? Shouldn't they be deleted? | 13:29 |
|
doener
| asn: git clean | 13:29 |
|
| asn: git isn't very proud of deleting stuff it cannot restore | 13:29 |
| ← jonaskoelker left | 13:29 |
|
doener
| so there's an explicit command for that | 13:29 |
|
xlq
| ;) | 13:29 |
|
asn
| I see! | 13:30 |
|
| thanks :) | 13:30 |
| ← bentob0x left | 13:30 |
|
doener
| asn: well, to be correct, "git checkout -f" already destroyed some stuff git cannot restore (the uncommitted changes to the tracked files), but well, you already said --force there | 13:31 |
| → timonator joined | 13:31 |
| → alb joined | 13:32 |
|
timonator
| how does the git community justify the lack of metadata storage like svns properties? | 13:32 |
|
asn
| doener: thanks, again | 13:32 |
| → name joined | 13:32 |
| ← lamont left | 13:33 |
| → jonaskoelker joined | 13:33 |
| → lamont joined | 13:35 |
|
eMBee
| timonator: to keep it simple? | 13:36 |
|
timonator
| hm, not really satisfying | 13:36 |
|
| i'm currently trying to justify that i like git in front of an svn user that says git is overhyped and will die down in a year or so | 13:36 |
| → bartman joined | 13:37 |
| → __name__ joined | 13:37 |
| ← name left | 13:37 |
| ← LotR left | 13:37 |
| __name__ → name | 13:38 |
| ← _Vi left | 13:38 |
|
mxey
| timonator: wait a sec. | 13:38 |
|
eMBee
| tough job, what does the guy know about git? | 13:38 |
|
timonator
| mxey to the rescue! | 13:39 |
|
mxey
| timonator: http://whygitisbetterthanx.com/ was designed exactly for this task | 13:39 |
|
timonator
| mxey: "the domain name alone disqualifies clicking the url" he said | 13:39 |
|
| because it hints at fanboyism | 13:39 |
|
mxey
| Looks like *he* is the fanboy. A Subversion fanboy. Tell him to stfu from me. | 13:40 |
|
timonator
| well, parts of his arguments are solid. like that git still has to get a lot more support from IDEs and other things... | 13:41 |
| → boto joined | 13:41 |
|
spb
| vim is the only IDE you need | 13:41 |
|
| and that has perfectly decent git support | 13:41 |
|
timonator
| not to everyone. | 13:41 |
|
mxey
| For Emacs there is magit. | 13:41 |
|
timonator
| he uses eclipse for his massive java stuff | 13:42 |
|
mxey
| There is some Git stuff for Eclipse. | 13:42 |
|
timonator
| yes, it's very, very lacking | 13:42 |
|
mxey
| I was told there is no computer that is fast enough for Eclipse. | 13:42 |
|
timonator
| heh heh | 13:42 |
| → chris2 joined | 13:42 |
| ← temoto left | 13:42 |
|
mxey
| timonator: So he likes Eclipse, Java and Subversion. Why are you even talking to him? ;) | 13:43 |
| → xanonus joined | 13:44 |
| ← d0k_ left | 13:44 |
|
timonator
| he is a very dear friend to me, that's why | 13:44 |
|
deskin
| timonator: editorializing, so others here may not agree with me; but first, I'd point out that git has analogues of most of the svn: properties of interest, like ignoring files, or using clean/smudge filters; and for other metadata, git lets you put it in files where it belongs. I don't know of a problem arising from lack of git metadata tracking that can't be solved using clean/smudge filters and putting information in other files | 13:44 |
|
andres
| And the eclipse stuff suffers a bit from the "lets reimplement everything in java" approach - although I have to admit the reasons are better than usual. | 13:44 |
|
deskin
| ask him to show you a real problem that svn's metadata wins at which git actually cannot do | 13:44 |
|
timonator
| what are those clean/smudge filters you're talking about? like having \n in the repo and \n\r in the working copy? with hooks? | 13:44 |
| ← nikolasco left | 13:45 |
|
deskin
| it could be newline stuff, though there's other ways to do that since it's so common; basically, clean/smudge filters let your working copy update with a non-canonical form of the file in the repository, and convert back to the canonical form when you check in | 13:46 |
| → LiamH joined | 13:46 |
|
deskin
| one example would be expanding $Date$, $Author$ or whatever CVS-style keywords | 13:46 |
| ← albertito left | 13:47 |
|
timonator
| ah, that's neat | 13:47 |
|
deskin
| but git doesn't give you a 'keyword' property to apply; it says 'write your clean/smudge filter to do that' :) | 13:47 |
|
andres
| And: "Be prepared to handle some pain resulting of nearly anybody using those" | 13:47 |
|
deskin
| true, they aren't a silver bullet; for one thing, branch switching becomes slower since they have to run in cases where files might not have changed before, but could now | 13:48 |
|
andres
| svn has a way much better library. Thats by far its biggest advantage I think. | 13:50 |
|
| (and its windows support. Git is slow on windows. That reminds me. I wanted to send some windows straces...) | 13:50 |
|
bobmcw
| but if you like to branch, git is the best thing ever | 13:50 |
|
| branching alone sold me on git | 13:50 |
| → EmilMedve joined | 13:50 |
|
bobmcw
| well, the merging after I branch | 13:50 |
|
| SVN can branch, it's merging that's painful | 13:51 |
|
timonator
| and svn branches have to be pushed to the server | 13:51 |
|
| for everyone to see | 13:51 |
|
eMBee
| but branching in svn is much more expensive compared to git | 13:51 |
|
andres
| And its merge tracking is a bad joke because of multiple reasons (no repeated merges, slow slow slow) | 13:51 |
| ← univate left | 13:52 |
|
eMBee
| and the svn interface to branches and tags, making them look like directories, is just horrible | 13:52 |
|
| andres: are you talking about merge tracking in svn 1.5? | 13:54 |
| → loincloth joined | 13:54 |
| → univate joined | 13:54 |
|
andres
| eMBee: yes | 13:54 |
| ← jonaskoelker left | 13:55 |
| → jonaskoelker joined | 13:55 |
|
eMBee
| andres: do you have experience with that or a pointer to some text explaining the problems/limitations? | 13:55 |
| → Yuuhi joined | 13:55 |
|
andres
| eMBee: I have some experience and no pointers I am aware of without searching | 13:56 |
|
timonator
| what happens to a file that is in revision control and later someone adds a .gitignore that matches it? | 13:56 |
|
Pieter
| nothing | 13:56 |
|
timonator
| so it stays in there? | 13:56 |
|
Pieter
| .gitignore only matches untracked files | 13:56 |
| → Cacheaway joined | 13:57 |
|
Pieter
| yes | 13:57 |
| → nikolasco joined | 13:57 |
|
timonator
| what does svn do in that case? | 13:58 |
| → _Vi joined | 13:58 |
| ← loincloth left | 13:59 |
|
timonator
| i mean, add svn:ignore after the file has been checked in | 13:59 |
|
andres
| timonator: the same | 14:01 |
| → loincloth joined | 14:02 |
| ← jds left | 14:03 |
|
andres
| timonator: everything else is bogus I think. | 14:03 |
|
timonator
| he says "gits merges aren't much better than any merges, because merges are always messy" | 14:04 |
|
| >_> | 14:04 |
|
| he says having to pull before you can push is a great feature | 14:04 |
|
deskin
| I think mxey is right: sounds like he's the fanboy here :) | 14:05 |
|
timonator
| :> | 14:05 |
|
mxey
| I'm glad *my* friends all use Git :) | 14:05 |
|
deskin
| I'd ask him, if merges are so messy why do gits do them so often :) | 14:05 |
|
mxey
| although it took some time to convert one of them from Mercurial. | 14:06 |
|
dsop
| git, mercurial everything the same | 14:06 |
|
| just a matter of taste | 14:06 |
|
mxey
| I recently read the Mercurial 1.1 changelog… a lot of Git mentions… git-like features… | 14:06 |
|
timonator
| the argument is getting heated | 14:06 |
|
mxey
| dsop: Not really, Git is much more powerful. | 14:06 |
|
dsop
| mxey: not really | 14:07 |
|
mxey
| does Mercurial have a reflog? | 14:07 |
|
dsop
| mxey: you can do a lot of the stuff with mercurial too, if not go and write an etension | 14:07 |
|
| mxey: hg's history is immutable | 14:07 |
|
mxey
| Git's history is as well. | 14:07 |
|
dsop
| depends on the view. Well nevermind, I guess not. | 14:07 |
| ← solydzajs left | 14:08 |
|
dsop
| what I mean is: both have advantages and disadvantages it's up to you that you chose | 14:08 |
| → vbabiy joined | 14:08 |
|
mxey
| If you think so, tell me what Mercurial's advantage is. | 14:08 |
|
dsop
| e.g. git is so hard to interface with | 14:08 |
|
mxey
| I never had a problem using Git in shell scripts… | 14:09 |
|
dsop
| try to add git to an IDE and you think different | 14:09 |
| ← ashleyw_ left | 14:09 |
|
mxey
| IDEs are a waste of screen space. | 14:09 |
|
timonator
| dsop: have you added hg to an IDE yet? | 14:09 |
|
dsop
| timonator: no but I know the implementation, pretty easy actually. | 14:09 |
|
timonator
| does it interface the python classes directly? | 14:10 |
|
dsop
| timonator: for sure | 14:10 |
|
mxey
| I am aware that Mercurial is more library-based than Git. Which means you have to code Python instead of sticking commands together on your shell. | 14:10 |
|
dsop
| also mercurial has hg serve | 14:10 |
|
| and zeroconf | 14:10 |
|
mxey
| git daemon exists as well. | 14:10 |
|
telmich
| zeroconf for mercurial? | 14:10 |
|
dsop
| yes, but you have to give 100 of options before it really oes what you want | 14:10 |
|
telmich
| that announces what? | 14:10 |
|
mxey
| dsop: Git supports aliases. | 14:10 |
|
Voker57
| dsop: not really, one or two | 14:11 |
|
mxey
| alias.serve=!git daemon --verbose --reuseaddr --base-path=. --export-all ./.git | 14:11 |
|
dsop
| mxey: but it is not very user friendly | 14:11 |
|
mxey
| Aliases are user friendly. | 14:11 |
|
dsop
| mxey: but not git daemon | 14:11 |
|
| telmich: it announce hg repositories | 14:11 |
|
mxey
| yes, hg serve is more straightforward. but setting up a serve alias for Git is hardly a problem. | 14:11 |
|
| andres prefers if opening a port is not dead easy. | 14:11 |
|
telmich
| dsop: hmmm...interesting...which program can be used to display those? | 14:11 |
|
dsop
| mxey: it is a problem if you want to use a version control system and don't want to know all it's details | 14:12 |
|
| telmich: mercurial :) | 14:12 |
|
deskin
| dsop: you mean, using mdns like apple/ avahi-type stuff? | 14:12 |
|
mxey
| Not wanting to learn is a problem, yes. Just learn. | 14:12 |
|
telmich
| dsop: nice | 14:12 |
|
dsop
| mxey: no it's just the common case, mercurial is for most uses just easier to learn and deal with. that's why I say: it's a matter of what you like | 14:12 |
|
| it's not a technial think: if you prefer the unix-style with a little bit more power use git. if not use hg | 14:13 |
| ← chalky left | 14:13 |
|
deskin
| hmm, one in every seven commits in git.git is a merge; no way I'd want to do that in svn | 14:13 |
|
mxey
| Power is more important than beginner-friendlines… you are a power user for a longer time than you are a beginner | 14:13 |
|
dsop
| I stick to the 80/20 rule and therefore hg is as perfect as git is. you use 20% of the features | 14:13 |
| → jm joined | 14:13 |
|
dsop
| mxey: I actually don't find something that I want to have in hg that's not implemented yet | 14:14 |
|
mxey
| Maybe you should reach beyond that arbitrary barrier and discover Git. | 14:14 |
| → ashleyw joined | 14:14 |
|
dsop
| mxey: I use git for 1 1/2 years know, I know it well and I like it, but it's just that it annoys me if people say: hg/bzr is just too bad | 14:14 |
|
| they all have their points and their reasons to use them. | 14:15 |
| → esden joined | 14:15 |
|
mxey
| I used Mercurial before I used Git. | 14:15 |
|
| Actually it took a long time to decide on this matter. | 14:15 |
|
dsop
| and particularly for hg/git there is no better in general there is just: I need this and other people need other things. So that's why both have their points | 14:15 |
|
| typical thing which hg is bad: reflog, rebasing, etc. | 14:15 |
| ← synchris left | 14:16 |
|
mxey
| You are free to believe that, but stop bothering me with it. | 14:16 |
|
dsop
| typical thing git is bad: interface, simplicity, windows | 14:16 |
|
mxey
| Do you really mean simplicity or do you mean newbie-friendly? | 14:16 |
|
telmich
| hmm, is git support for windows still bad? | 14:17 |
|
dsop
| telmich: at least for usual windows user that want to have a nice gui | 14:17 |
| ← univate left | 14:17 |
|
telmich
| dsop: ahh, in that way | 14:17 |
|
mxey
| Usual Windows users should that away from version control. | 14:17 |
|
| s/that/stay/ | 14:17 |
| ← vbabiy left | 14:17 |
|
telmich
| dsop: but I mean -- the "normal" way (commandline) should work without problems, doesn't it? | 14:17 |
| → vbabiy joined | 14:17 |
|
dsop
| telmich: yes, for sure | 14:17 |
|
telmich
| mxey: well, I'm not sure whether this would help... the real solution is to get rid of windows at all | 14:18 |
|
dsop
| telmich: but if a company decides which vcs to use, they often do not use git because of the lack of a good gui | 14:18 |
|
mxey
| telmich: Well, Ubuntu GUI users are not much better. | 14:18 |
|
azuk
| telmich, there are problems even in command line use | 14:18 |
| ← _Vi left | 14:19 |
| → jds joined | 14:19 |
| ← bartman left | 14:20 |
|
telmich
| azuk: which ones? | 14:20 |
| → _Vi joined | 14:20 |
| → muthu_ joined | 14:21 |
| ← vbabiy left | 14:24 |
| → vbabiy joined | 14:24 |
|
timonator
| my friend says, that the world doesn't need git, that it's only good for special cases like for example google android | 14:24 |
|
| but for any non-huge-scale project it's nonsense, as people will just adapt the SVN workflow of one central repo | 14:25 |
|
telmich
| timonator: not true | 14:25 |
|
timonator
| yeah, that's what i said | 14:25 |
|
telmich
| timonator: I was just creating some t-shirts for a local hackers group | 14:25 |
|
timonator
| he doesn't even agree to disagree :| | 14:25 |
|
mxey
| telmich: t-shirts? ;) | 14:26 |
|
telmich
| timonator: and everybody had to submit his/her eps and svg via git | 14:26 |
|
| mxey uses Git for almost everything | 14:26 |
|
telmich
| mxey: yep, you can find them there: http://git.schottelius.org/?p=EOF/shirts-2008;a=summary | 14:26 |
|
timonator
| heh | 14:26 |
|
mxey
| oh, !eof? | 14:26 |
|
telmich
| yep | 14:26 |
|
mxey
| I think timonator and me should be able to see these shirts live in a few weeks ;) | 14:27 |
|
telmich
| mxey: you are also at the 25C3? | 14:27 |
| → qrush joined | 14:27 |
|
mxey
| yes | 14:27 |
|
telmich
| nice | 14:27 |
|
| where are you from? | 14:27 |
|
dsop
| hmm 25C3.good option | 14:27 |
|
mxey
| first one | 14:27 |
|
| telmich: Vicinity of Düsseldorf. | 14:27 |
|
telmich
| mxey: ahh, german | 14:28 |
|
| mxey nickt | 14:28 |
| ← scientes left | 14:28 |
|
| telmich = ch,zh | 14:28 |
|
telmich
| hmm, let's make a git workshop | 14:29 |
| ← vaskaren left | 14:29 |
| ← vbabiy left | 14:29 |
| → vaskaren joined | 14:29 |
|
mxey
| I'm giving Git introductions about every week at work now :D | 14:29 |
| → vbabiy joined | 14:29 |
| ← vbabiy left | 14:29 |
|
pflanze
| Is there a way to run gitk with a file argument (to show only commits touching that file) but still show the complete diffs, of all files touched by the selected commits? | 14:30 |
|
telmich
| mxey: was the same in my old company | 14:30 |
| → softdrink joined | 14:31 |
| ← _Vi left | 14:33 |
|
charon
| pflanze: untick "limit diffs to listed paths" in gitk's settings | 14:33 |
| ← softdrink left | 14:33 |
| ← snitko left | 14:33 |
|
telmich
| mxey: http://events.ccc.de/congress/2008/wiki/!eof#Using_the_distributed_version_control_system_git | 14:34 |
| ← grahal left | 14:34 |
|
timonator
| telmich: we could come visit you :) | 14:34 |
|
mxey
| agreed. | 14:34 |
|
| the chat system sounds interesting as well | 14:34 |
|
telmich
| timonator: sure, you are invited to have a look at the chaotic, friendly hackers group | 14:35 |
|
pflanze
| charon: thanks, that's it; although I would have preferred a commandline option, so as to not affect every future invocation / not having to click that item all the time. | 14:35 |
| ← unreal left | 14:35 |
|
mxey
| timonator: Craig also reserved a CCCD table ;) | 14:35 |
|
pflanze
| Maybe I should add one.. (but I don't know tcl) | 14:35 |
|
charon
| pflanze: make a patch to recognize --full-diff as with git-log ;) | 14:35 |
|
timonator
| mxey: we've got lojban space | 14:35 |
|
mxey
| telmich: Tell me more about the "Distributed communities" | 14:36 |
|
| timonator: There is also a Debian table ;) | 14:36 |
|
timonator
| where you are going to sit and pick up girls ;) | 14:36 |
|
mxey
| But I if lurk with Craig I will end up at the Gentoo table. | 14:36 |
|
| I need more Debian shirts so I can wear one of them at the Gentoo party… | 14:36 |
|
timonator
| heh heh | 14:37 |
| → shep-werk joined | 14:37 |
|
shep-werk
| Howdy all | 14:37 |
|
mxey
| moin shep-werk | 14:37 |
|
timonator
| why aren't we talking in #git-social or something? | 14:37 |
|
mxey
| Are we on-topic fascists? ;) | 14:37 |
|
timonator
| everything is *logged*! | 14:37 |
|
mxey
| oh dear | 14:38 |
|
| they are gonna hunt down all Git users! | 14:38 |
| ← EiNZTEiN left | 14:38 |
|
timonator
| no, all slackers that discourage on-topic talk on #git | 14:38 |
|
mxey
| yeah, I should hack some more JavaScript. | 14:38 |
| → bartman joined | 14:39 |
|
shep-werk
| timonator: you want on-topic discussion? Does that mean you will answer my question? :-D | 14:39 |
|
telmich
| mxey: it's mostly about how to survive as a community, though you are not living next to each other | 14:39 |
|
timonator
| if i can, yes. ask | 14:39 |
|
mxey
| telmich: ah | 14:39 |
|
shep-werk
| So, we are going to branch a release version (7.0) from our development branch (development) | 14:39 |
|
| and at the beginning, there are going to be many bug fixes that need to go into both branches | 14:40 |
|
| obviously, as time goes on, more will be pure development, and less will be fixes that will go on that branch | 14:40 |
|
timonator
| yeah | 14:41 |
| → parasti joined | 14:41 |
|
shep-werk
| my question is: are there any neat git tricks I can use to help prevent fixes in dev from not making it to 7.0 | 14:41 |
|
| we use other tracking things (bugzilla flags, e.g.) but git really is the authoritative place | 14:41 |
|
deskin
| shep-werk: you might want to look at man gitworkflows; the 'apply fixes to the lowest branch that needs them, and merge up' approach seems to work pretty nicely | 14:43 |
|
Gitbot
| shep-werk: the gitworkflows manpage can be found at http://git.or.cz/man/gitworkflows | 14:43 |
| → cannonball joined | 14:43 |
|
charon
| also, make topic branches for every fix, and name them accordingly if 7.0 needs it; then 'git branch --no-merged $stable' can tell you the topics that are still not on 7.0 | 14:44 |
| ← qrush left | 14:44 |
| → qrush joined | 14:45 |
| ← wsuff left | 14:46 |
|
shep-werk
| deskin: yeah, basically we do the downwards cherry-picking now | 14:46 |
| → [RIT]Rawn027 joined | 14:46 |
|
shep-werk
| which can be painful | 14:46 |
|
deskin
| yes | 14:46 |
|
shep-werk
| I guess the root cause it that we will fix a bug in dev | 14:46 |
|
| then realize that it is broken in 7.0 as well | 14:47 |
| → jackdempsey joined | 14:47 |
|
shep-werk
| maybe that means that our workflow should be the other way around | 14:47 |
|
deskin
| well, that can be addressed by careful testing for the bug in both places | 14:47 |
|
shep-werk
| find a bug | 14:47 |
|
| yeah | 14:47 |
|
| eMBee would generally want to test a fix in dev first, before adding it to stable | 14:47 |
|
mxey
| If you introduce a regression test per bug, you can run them on all your branches ;) | 14:47 |
|
pflanze
| Any gitk knowledgable person helping me understand how option parsing in gitk works? | 14:48 |
|
shep-werk
| mxey: woah - testing? now you are talking crazy | 14:48 |
|
deskin
| one can do that (test fix in dev percolates to stable), but topic branches are a better way than cherry picking | 14:48 |
| → aroben joined | 14:48 |
|
mxey
| shep-werk: Automated testing is not crazy. | 14:48 |
|
shep-werk
| mxey: I know, just poking fun at you | 14:49 |
|
mxey
| Thought so | 14:49 |
|
eMBee
| unfortunately automated testing does not include automated test-writing | 14:49 |
|
| deskin realised just the other day that 'make test' in git.git could benefit from the -j option; now patches come out 3x sooner | 14:49 |
|
timonator
| hey, where did i see that comparison of hg, svn, bzr and git in terms of speed and repository size? | 14:49 |
|
shep-werk
| mxey: our full QA quite takes ~ 5 days, so it can be a bear to use | 14:49 |
|
| suite* | 14:49 |
|
mxey
| hrhr | 14:50 |
| ← peeja left | 14:50 |
|
mxey
| can't you run single tests? | 14:50 |
| ← xjjk left | 14:50 |
|
shep-werk
| mxey: the person who wrote out testsuite did not strive for user friendliness.... | 14:50 |
|
eMBee
| shep-werk: 5 days??? and here we are complaining that our testsuite runs 40 minutes and investing a lot of work paralellizing it to get it down to less than 5 minutes... | 14:50 |
|
shep-werk
| it's possible to do, but not easy | 14:50 |
|
| eMBee: our testsuite includes solaris 8, on a not-too-fast machine :-( | 14:51 |
| → xjjk joined | 14:52 |
|
shep-werk
| eMBee: if you like parallelizing things, you should check out non-recursive make ;-) | 14:52 |
|
eMBee
| how do you use that testsuite? here we run tests before every commit to trunk | 14:52 |
|
shep-werk
| eMBee: I guess the scope is just different, as that wouldn't be very feasible here | 14:53 |
| ← ankit9 left | 14:53 |
|
eMBee
| shep-werk: that's what i wonder about, such a testsuite would not work at all here | 14:54 |
|
andres
| eMBee: do that for performance regression tests... | 14:54 |
|
eMBee
| andres: do what? | 14:54 |
|
shep-werk
| eMBee: sometimes our problems only occur at crazy amounts of data ;-) | 14:54 |
|
andres
| eMBee: running regression tests before every commit | 14:55 |
|
| eMBee: when a singly query takes some hours ;-) | 14:55 |
|
shep-werk
| deskin: what about cases where dev and 7.0 have diverged so much that a fix doesn't apply in both? | 14:55 |
| → _Vi joined | 14:56 |
|
shep-werk
| it seems once a single commit like that occurs, you can no longer do merges | 14:56 |
| → absentia joined | 14:56 |
|
timonator
| well, you'd cherry-pick anyway, wouldn't you? | 14:56 |
|
| after a while, i mean | 14:56 |
|
absentia
| grrr. I did a rm -rf dir in my local files.. and when I do a git pull, it says i'm up to date... how do I tell get to actaully do something useful and GET the files that i need? | 14:57 |
|
deskin
| shep-werk: you mean, doesn't apply cleanly? Or, isn't broken in both? | 14:57 |
|
timonator
| and if the dev tree diverged so far, that the fix doesn't apply to the original, you might be better up rewriting that fix or checking if the fix even applies | 14:57 |
|
shep-werk
| timonator: I guess - so the suggestion is do merges while they are close together, then cherry-pick once the rush has dies down? | 14:57 |
|
| deskin: i meant doesnt apply cleanly, but I guess both cases are important | 14:58 |
|
absentia
| ? | 14:58 |
|
parasti
| absentia: so what do you want to do? get your files back or pull? | 14:58 |
|
timonator
| i've never been able to test this in a real-world situation... | 14:58 |
|
absentia
| I want to pull the latest files from the master | 14:58 |
|
deskin
| you *can* hack the merge result to be whatever you want; so even if something in stable 'shouldn't be merged', you can do the merge as a sort of no-op, but honestly I don't think it's a case that will come up a lot | 14:58 |
|
shep-werk
| absentia: git reset --hard will put files back to the current HEAD | 14:58 |
|
absentia
| thank you | 14:58 |
|
timonator
| or whatever ref-like you put there | 14:58 |
|
absentia
| thank you | 14:59 |
| → EiNZTEiN_ joined | 14:59 |
| → EiNZTEiN joined | 14:59 |
|
deskin
| it's really a better situation than svn: svn ci -m 'DO NOT MERGE: fix bug foobar' | 15:00 |
|
shep-werk
| OK, I'll see if doing merges makes sense for us - some of our devs are still used to CVS and SVN, so there can be confusion | 15:00 |
|
| deskin: preaching to the choir there ;-) | 15:00 |
|
absentia
| fvck | 15:01 |
| ← absentia left | 15:01 |
| ← reithi left | 15:01 |
| → scientes joined | 15:01 |
| → withanx joined | 15:02 |
| ← thiago_home left | 15:03 |
| → thadwheeler joined | 15:03 |
|
pflanze
| Hm, I've removed any reference to "full-diff" from current gitk, but it still doesn't complain about unknown argument, why? | 15:04 |
| ← _Vi left | 15:05 |
|
Zathrus
| anyone have experience w/ git on Windows? Wondering if cygwin or mysysgit is preferable; needs to be able to talk over ssh to Linux boxes (if it could talk over putty's ssh, then even better, since I have the keys setup properly via pageant) | 15:06 |
| → _Vi joined | 15:06 |
|
thadwheeler
| quick question - I have gotten git installed on Mac 10.5 - when I try to git commit -a I get the error after entering my commit message in Vim: error: There was a problem with the editor 'vi'. | 15:07 |
|
| Please supply the message using either -m or -F option. | 15:07 |
|
| any thoughts? | 15:07 |
|
cbreak
| weird | 15:07 |
|
xlq
| weird | 15:07 |
|
deskin
| thadwheeler: I've seen this one before; default vi exits with an error code on some mac setups | 15:07 |
|
shep-werk
| thadwheeler: use emacs ;-) | 15:07 |
|
| shep-werk starts flamewar | 15:08 |
|
cbreak
| I use os x 10.5 and it works | 15:08 |
|
xlq
| shep-werk: :( | 15:08 |
|
cbreak
| (although, I do use vim, not vi) | 15:08 |
|
metajack
| thadwheeler: what is your $EDITOR ? | 15:08 |
| → Hendu joined | 15:08 |
| ← Weaselweb left | 15:08 |
|
thadwheeler
| metajack, nothing? how do I set that? | 15:08 |
|
shep-werk
| deskin, timonator: So the suggestion is basically "use merge, until it doesn't make sense anymore", right? | 15:08 |
|
Hendu
| Hello. I'm using git on mac os x and would like to change the app that helps me file merge. Can this be done? | 15:09 |
|
deskin
| one quick fix might be to do echo -e '#!/bin/bash\nvi $@\nexit 0' > myvim; EDITOR=myvim git commit... | 15:09 |
|
timonator
| shep-werk: that's how i'd do it | 15:09 |
|
| but ymmv | 15:09 |
|
| Hendu: very much so, see http://www.kernel.org/pub/software/scm/git/docs/git-merge.html the configuration section | 15:10 |
|
Hendu
| timonator: thanks | 15:10 |
|
deskin
| shep-werk: more or less; but merging isn't a substitute for thinking about your commits and workflow :) Grok the change being made, and you'll know where to apply it, and how to propagate it | 15:11 |
|
shep-werk
| deskin: thats the tricky thing that my CTO brought up - how do you prevent someone else from merging your commit that should be in 7.0 and not in development? | 15:11 |
|
deskin
| you rewrite the merge result to not contain those changes | 15:12 |
|
cbreak
| artefact:~ cbreak$ vi --help | 15:12 |
|
| VIM - Vi IMproved 7.2 (2008 Aug 9, compiled Sep 25 2008 19:37:57) | 15:12 |
|
deskin
| look at merge strategies; -s ours exists for precisely this reason | 15:13 |
|
cbreak
| that works for me with git | 15:13 |
|
thadwheeler
| deskin, reading thought the command you sent - and I am a little confused.. | 15:13 |
|
deskin
| ok... what can I explain? | 15:13 |
|
| I left out lots of stuff, like, chmod +x, but I think the spirit is clear | 15:14 |
|
| deskin is not a mac user, so there could be some translation issues | 15:15 |
|
thadwheeler
| is this basically writing a config for VIM? is there an $EDITOR variable I should be setting some where? | 15:15 |
|
xlq
| thadwheeler: it's a shell script that pretends to be vim, so that you can change the value it retuns. | 15:15 |
|
deskin
| well, you could do git config core.editor = myvim (or emacs or ...) | 15:15 |
|
thadwheeler
| whats the purpose of hte command I guess is what I am getting at? sorry.. | 15:15 |
|
cbreak
| the mac vi is really a vim | 15:15 |
| ← esden left | 15:15 |
|
cbreak
| and it works for me, which is weird | 15:15 |
|
deskin
| try this: 'vi'; then ':q'; then at the shell, echo $? | 15:16 |
|
cbreak
| with git version 1.6.0.3.523.g304d0 | 15:16 |
|
thadwheeler
| so I can change it in the git config core.editor | 15:16 |
|
deskin
| vi is returning an error code, which git interprets correctly as failure; so my script ignores vi and exits with 0 (success) | 15:16 |
|
thadwheeler
| mine exits with a 1 | 15:17 |
|
deskin
| exactly | 15:18 |
|
thadwheeler
| ls | 15:18 |
|
| oops | 15:18 |
| → threeve joined | 15:18 |
|
deskin
| now try './myvim'; ':q'; 'echo $?' | 15:19 |
| → ashleyw_ joined | 15:20 |
|
cbreak
| how do you exit vim? | 15:21 |
| → esden joined | 15:21 |
|
Rhonda
| cbreak: :q! | 15:21 |
|
xlq
| :q | 15:21 |
|
| or ZZ | 15:21 |
| |kukks| → kukks | 15:21 |
|
cbreak
| :q! should not work | 15:21 |
|
deskin
| the ! doesn't make a difference | 15:21 |
|
Rhonda
| cbreak: Why shouldn't it work? | 15:21 |
|
cbreak
| it will not save the commit message | 15:21 |
|
bobmcw
| if you've :w first, :q! is fine | 15:21 |
|
cbreak
| yeah, but if not, it won't :) | 15:21 |
|
thadwheeler
| ls -al | 15:22 |
|
xlq
| '!' means to discard changes | 15:22 |
|
Rhonda
| Was about exiting. Noone mentioned saving changes. :) | 15:22 |
|
deskin
| no, ! means to really quit | 15:22 |
|
xlq
| ...when applied to :q | 15:22 |
|
| yes | 15:22 |
|
| well, it actually really closes a window | 15:22 |
|
PerlJam
| ! means to emphatically do whatever operation it is attached to. | 15:22 |
|
Rhonda
| If you want to save and quit, I suggest :x | 15:22 |
|
deskin
| ah, you're right, discard anything since last written | 15:22 |
|
PerlJam
| e.g., :w! foo means to really write foo even if that overwrites and existing foo | 15:23 |
|
| s/and/an/ | 15:23 |
|
deskin
| but it doesn't change exit status | 15:23 |
|
xlq
| and :help! tries to calm you down | 15:23 |
|
cbreak
| my vi gives an exit value of 0 | 15:23 |
|
Rhonda
| xlq: haha, cool easter egg :) | 15:23 |
|
cbreak
| what does "which vi" return? | 15:24 |
| ← xjjk left | 15:24 |
| ← jackdempsey left | 15:24 |
|
thadwheeler
| deskin, getting 0 as return now.. but I a gussing I needed to use vim not myvim in the code... | 15:24 |
|
cbreak
| the os x vi is in /usr/bin, maybe you have a fink vi or something | 15:24 |
|
deskin
| well, if vim exits with 0 already, just use that, not my script | 15:24 |
|
shep-werk
| deskin: do you have a good reference for the 'ours' strategy? The manpage is a little short... | 15:25 |
|
thadwheeler
| nope regular vim exits with 1 | 15:25 |
|
cbreak
| which is your regular one? | 15:25 |
|
| because I know for sure that the one from mac os x returns 0 | 15:26 |
|
xlq
| Right there, next to your regular one | 15:26 |
|
deskin
| shep-werk: it's quite simple: 'make a commit as having merged this branch as a parent, but secretly use the same tree of the branch I'm on' | 15:26 |
| → xjjk joined | 15:26 |
|
deskin
| i.e. whatever the other branch has in terms of content doesn't matter; the result tree is always just what you have | 15:26 |
|
thadwheeler
| cbreak, in run vim - exit and get a 1 as a return code | 15:27 |
|
shep-werk
| deskin: sadly, I'm still not getting it - would playing with a test git repo make it clear for me? | 15:27 |
|
cbreak
| thadwheeler: which vim? | 15:27 |
|
deskin
| but now that other commit is an ancestor of your branch, so you can merge again later without reintroducing that change | 15:27 |
|
thadwheeler
| which vim gets me /usr/bin/vim | 15:27 |
|
cbreak
| weird | 15:27 |
|
deskin
| shep-werk: I highly recommend it | 15:27 |
|
cbreak
| what version? | 15:27 |
|
deskin
| the test repo thing, that is | 15:27 |
|
shep-werk
| deskin: it sounds kind of like git itself - can be hard to understand, but once you do it it clicks ;-) | 15:28 |
| ← ashleyw_ left | 15:28 |
|
thadwheeler
| cbreak, I wonder if its because I installed git without ports or fink.. . | 15:28 |
|
cbreak
| I installed git from git | 15:28 |
|
| but my version is a bit older. and either way | 15:29 |
|
xlq
| let's hope that wasn't your first install, cbrake | 15:29 |
|
cbreak
| it should not change the return code from vim | 15:29 |
|
xlq
| let's hope that wasn't your first install, cbreak | 15:29 |
|
deskin
| I've said before, other VCSs try to hide how things are done from the user; git goes the other way, and requires you to understand how things are done to use it effectively | 15:29 |
|
thadwheeler
| cbreak, vim is 7.2.22 | 15:29 |
|
cbreak
| very weird. I have 7.2 | 15:29 |
| → ashleyw_ joined | 15:29 |
|
cbreak
| so, the same | 15:30 |
| ← tjogin left | 15:30 |
| ← ashleyw left | 15:30 |
| ← ashleyw_ left | 15:30 |
|
thadwheeler
| not a big deal really - I can still use the Textmate Bundle or citool | 15:30 |
|
cbreak
| xlq: I stopped counting :) | 15:31 |
| ← [RIT]Rawn027 left | 15:31 |
| → unreal joined | 15:31 |
| ← came0 left | 15:33 |
| ← ia left | 15:34 |
|
shep-werk
| deskin: I think I am starting to see what is happening here | 15:34 |
| ← _Vi left | 15:34 |
|
shep-werk
| so, if I make a change in 7.0 that should *not* be in dev | 15:34 |
|
| i commit in 7.0 | 15:34 |
| → jackdempsey joined | 15:34 |
|
shep-werk
| then I merge 7.0 into development with -s ours | 15:35 |
|
| which just does *not* change the files | 15:35 |
|
| but, when I do a future change in 7.0 that *should* be in dev | 15:35 |
|
| then I can do a normal merge, and still get that change | 15:36 |
|
deskin
| shep-werk: you got it exactly | 15:36 |
| ← jackdempsey left | 15:36 |
|
shep-werk
| im not as dumb as I look ;-) | 15:36 |
|
deskin
| that, and you're learning now; watch out world :) | 15:36 |
| ← zjason_ left | 15:37 |
|
deskin
| I'm off to $work, have fun with your merges | 15:37 |
|
shep-werk
| thanks for the help | 15:37 |
|
| have fun | 15:37 |
|
xlq
| Oh, I get it! | 15:38 |
| → powerfox joined | 15:41 |
| → bdiego joined | 15:42 |
|
powerfox
| Hi! Is there any simple way to tell git-merge, that remote repo is always "right", so if any conflict occur then to use file from remote? | 15:42 |
| → vbabiy joined | 15:42 |
|
xlq
| that's not very wise | 15:43 |
| ← Hendu left | 15:46 |
| → akitada joined | 15:46 |
| → murphl joined | 15:47 |
| ← jonaskoelker left | 15:47 |
|
Zathrus
| if you're doing that, then you may as well just use rsync | 15:48 |
|
knobo
| Can filter get to know about filename? | 15:49 |
|
ciaranm
| where's the list of env vars for git filter-branch these days? the man page points to git-commit, but they're not there | 15:49 |
|
knobo
| git config filter... | 15:49 |
|
parasti
| ciaranm: man git-commit-tree | 15:51 |
|
Gitbot
| ciaranm: the git-commit-tree manpage can be found at http://git.or.cz/man/git-commit-tree | 15:51 |
|
ciaranm
| ta | 15:51 |
| ← xanonus left | 15:52 |
| ← girishr_ left | 15:53 |
| → Ramblurr joined | 15:54 |
|
Ramblurr
| i have a git repo that isn't using git-svn, and i need to publish this git repo to an svn repo | 15:55 |
|
| ideally keeping the history | 15:56 |
|
| all the git-svn articles i'm finding talk about going from svn->git-svn | 15:56 |
| → ahupp|fb joined | 15:57 |
|
dsop
| Ramblurr: I created a svn module, imported it via git-svn than created a graft, merged/rebase my git branch on top of the svn branch and than do a dcommit | 15:57 |
|
knobo
| Is there a way to pass information about the filename to the filter that runs befor commit and after checkout? | 15:57 |
|
dsop
| Ramblurr: maybe there is a better way to do it, but it worked. | 15:57 |
| → LotR joined | 15:58 |
| ← Cacheaway left | 15:58 |
| → Cacheaway joined | 15:58 |
| → willb joined | 15:58 |
| → JackTheRabbit joined | 16:00 |
| ← JackTheRabbit left | 16:00 |
| → JackTheRabbit joined | 16:01 |
| ← JackTheRabbit left | 16:01 |
| → JackTheRabbit joined | 16:02 |
|
xlq
| boingboingboing | 16:03 |
| → metajack_ joined | 16:04 |
| ← esden left | 16:04 |
| → esden joined | 16:05 |
|
JackTheRabbit
| Hi esden! | 16:05 |
| → bobmcw_ joined | 16:05 |
| → lil-murph joined | 16:05 |
|
esden
| ahh hi JackTheRabbit | 16:06 |
| ← bobmcw left | 16:06 |
| bobmcw_ → bobmcw | 16:07 |
| → bronson joined | 16:07 |
| rolfb → rolfb_away | 16:07 |
|
pflanze
| Is there still no way to revert multiple patches in one go? Except doing it manually, or using git rebase -i afterwards? | 16:08 |
| ← murphl left | 16:08 |
| → mw joined | 16:11 |
| ← metajack left | 16:13 |
| ← sverrej left | 16:13 |
|
parasti
| rebase -i doesn't exactly qualify as "revert" | 16:13 |
|
madduck
| but it can squash | 16:13 |
|
| pflanze: no. :) | 16:13 |
|
parasti
| ah, squash the manual reverts? ok | 16:13 |
| ← Voker57 left | 16:13 |
| ← cgardner left | 16:14 |
|
pflanze
| I'm still waiting for the case where I want to remove a whole feature consisting of a series of 200 patches or so. | 16:14 |
| → metajack joined | 16:14 |
| ← bartocc left | 16:15 |
| → grahal joined | 16:15 |
|
madduck
| which would have been in a branch, right? You can revert the merge... | 16:15 |
| → iulian joined | 16:19 |
| ← Ryback_ left | 16:19 |
| ← metajack left | 16:20 |
| → sgrimm joined | 16:22 |
| → Ilari joined | 16:23 |
| → mkdread joined | 16:26 |
| ← asn left | 16:26 |
| → bieneff joined | 16:27 |
|
mkdread
| hi, I have deleted a lot of files in git but I don't know how to do to track the changes without "git rm" one by one. "git add ." does't seem to work. Any idea? | 16:28 |
| ← vaskaren left | 16:28 |
| → stephens joined | 16:28 |
| → vaskaren joined | 16:28 |
| ← metajack_ left | 16:28 |
| → jackdempsey joined | 16:29 |
| → not-xjjk joined | 16:29 |
|
halfline
| mkdread: does git-status tell you what you want to know? | 16:29 |
|
parasti
| mkdread: git add -u? | 16:29 |
|
mkdread
| yes, in "Changed but not updated:" it appears | 16:30 |
|
| thanks parasti , it worked | 16:30 |
|
parasti
| just make sure it didn't add any other changes you didn't want to add | 16:31 |
|
thadwheeler
| deskin, thanks for the help... I switched my editor to textmate. for git.. I will look into the problems I am having later. | 16:33 |
|
mkdread
| ok, and another question, how can I take out some files from the index or all of them without modifiing my working directory? | 16:34 |
|
Ilari
| mkdread: 'git rm --cached'. | 16:34 |
| → not-xjjk_ joined | 16:35 |
| ← JackTheRabbit left | 16:37 |
| ← reel_ left | 16:40 |
| → cgTobi joined | 16:40 |
| → kumbayo joined | 16:41 |
| ← kyle___ left | 16:41 |
| ← xjjk left | 16:41 |
| → johnflux joined | 16:42 |
|
johnflux
| sorry for stupid question - how do I change to specific revision? | 16:43 |
| ← vaskaren left | 16:43 |
|
cbreak
| change how? | 16:43 |
|
johnflux
| I know the SHA of a particular commit, so I want to check out the tree at that moment | 16:43 |
|
cbreak
| you can use git rebase -i | 16:43 |
|
| oh, you can do git checkout <hash> | 16:43 |
|
parasti
| johnflux: well, you answered that yourself :) | 16:43 |
|
cbreak
| but I am not sure if you can commit from a detached head | 16:43 |
|
johnflux
| do I use checkout even if I've already got it checked out? | 16:44 |
|
Ilari
| johnflux: 'git checkout <ID>' (but don't make commits on top of that or those can be lost if you are not careful). | 16:44 |
|
nadim
| pflanze: hi, had any chance to pack what you were going to send me? | 16:44 |
| → Ryback_ joined | 16:44 |
|
cgTobi
| johnflux: you might be confusing 'git checkout' with 'git clone' | 16:44 |
|
pflanze
| nadim: not yet; I wonder whether you're interested in my packages history? | 16:45 |
|
johnflux
| it gives me a warning 'Note moving to XXX which isnt' a local branch | 16:45 |
|
Ilari
| johnflux: It's just a warning. | 16:45 |
|
nadim
| pflanze: I'm always interrested in others input | 16:45 |
| → drewr joined | 16:45 |
|
pflanze
| nadim: it would cut time a bit down, although shouldn't matter that much; some time will be finding which scripts there are and which dependencies they have. | 16:45 |
| ← not-xjjk left | 16:46 |
| ← IRSeekBot left | 16:46 |
|
nadim
| I'm gathering input from multiple sources right now so you input is welcome. | 16:46 |
|
johnflux
| is it possible to checkout for a given date? | 16:47 |
|
cbreak
| no | 16:47 |
|
johnflux
| I need to checkout lots of modules. using the date seems to be the best way to make sure all the modules compile with each other | 16:47 |
|
cbreak
| git is not linear | 16:47 |
|
johnflux
| cbreak: doesn't it still have a concept of which is the 'main' trunk? | 16:49 |
|
cbreak
| what's a trunk? | 16:49 |
|
johnflux
| hmm | 16:49 |
|
cbreak
| if you have a branch that contains merges, it could have two concurrent streams | 16:49 |
|
| or more | 16:49 |
|
johnflux
| yeah true | 16:49 |
|
| hmm, how can I do this... I want to bisect Xorg which has lots of modules | 16:49 |
|
cbreak
| do they use git submodules? I think those are bound to the main by revision | 16:50 |
|
johnflux
| how can I tell ? | 16:50 |
|
| cbreak: no they don't | 16:51 |
|
| :) | 16:51 |
| ← sgrimm left | 16:52 |
| ← Yuuhi left | 16:52 |
| → sgrimm joined | 16:53 |
| ← lil-murph left | 16:54 |
| ← Strogg left | 16:54 |
| → Strogg joined | 16:55 |
|
johnflux
| cbreak: it seems that you can do what I want | 16:55 |
|
| git checkout -d '4 months ago' | 16:55 |
| → xjjk joined | 16:56 |
| → fhobia joined | 16:56 |
| → lil-murph joined | 16:57 |
| → ceej joined | 16:57 |
| ← tango_ left | 16:57 |
| ← mkdread left | 16:57 |
|
cbreak
| hmm... | 17:00 |
|
johnflux
| cbreak: sorry wait :) | 17:00 |
|
cbreak
| I wonder how it resolves the ambiguity. /me goes read man page | 17:00 |
|
johnflux
| cbreak: sorry the syntax seems to be something like: git checkout branch@{yesterday} for example | 17:01 |
|
| but I can't get it to wokr | 17:01 |
|
| work | 17:01 |
|
cbreak
| that's the reflog | 17:01 |
|
| imagine you update your repository from the central every month | 17:01 |
|
| after the update, you do a checkout of half a month ago. you get how your local repository was half a month ago | 17:02 |
|
| not the central one | 17:02 |
|
nadim
| wow! that's too often ;) | 17:02 |
| → hobodave joined | 17:02 |
| → edwardam joined | 17:03 |
|
johnflux
| hum | 17:03 |
| ← scientes left | 17:03 |
| ← Ramblurr left | 17:03 |
| ← bartman left | 17:03 |
| ← EmilMedve left | 17:04 |
| → scientes joined | 17:04 |
| → EmilMedve joined | 17:04 |
|
knobo
| I'm trying to find out if there is any environment variables I can use with filter (as in gitattributes). So I made a filter wich just cats env(1) to a file. But I don't get any git variables. Is there non? | 17:04 |
| → not-xjjk joined | 17:05 |
| → bartman joined | 17:06 |
| → xanonus joined | 17:06 |
|
Ilari
| knobo: Filter is designed to act as function from set of files to set of files. Doing anything else would break things badly... | 17:06 |
|
| knobo: s/files/file contents/g | 17:07 |
|
| knobo: So, two files with identical contents need to map identically. | 17:07 |
| ← not-xjjk_ left | 17:08 |
| → m3y3ring` joined | 17:08 |
|
johnflux
| fatal: ref HEAD is not a symbolic ref. won't bisect on seeked tree | 17:09 |
|
| what does this mean? | 17:09 |
|
cbreak
| that means you have a detached head | 17:09 |
|
| you possibly did a checkout on a hash value directly | 17:10 |
|
| or a reflog entry | 17:10 |
|
| (I think :) | 17:10 |
|
johnflux
| I did 'checkout HEAD' again... | 17:10 |
|
| how do I fix it? :) | 17:10 |
|
Ilari
| johnflux: 'git checkout <branch'. | 17:10 |
|
johnflux
| I guess I could give the SHA of the most recent commit | 17:10 |
|
Ilari
| johnflux: 'git checkout <branch>'. | 17:10 |
|
johnflux
| okay I did 'git checkout master' | 17:11 |
|
parasti
| johnflux: using a hash will just do another detached checkout | 17:11 |
|
johnflux
| It says now (when I bisect) won't bisect on seeked tree | 17:11 |
|
| oh, I need to reset my last bisect | 17:12 |
|
| why doesn't it just say so! | 17:12 |
|
| someone make these errors more clear please :-) | 17:13 |
| → Jacolyte joined | 17:13 |
| ← charon left | 17:13 |
|
johnflux
| It should say "Bisect already in progress. Use 'git bisect reset' to reset.' | 17:13 |
|
Ilari
| johnflux: What git version? "seeked tree" sounds like some pretty old version... | 17:14 |
|
johnflux
| git version 1.5.4.3 | 17:14 |
|
| is that old? | 17:14 |
|
| latest is 1.6.0.4 | 17:14 |
|
| hmm | 17:14 |
|
Ilari
| johnflux: Not terrible, but old... | 17:14 |
| ← Ryback_ left | 17:15 |
|
knobo
| Ilari: could you give me an example of what you mean filter is supposed to be used to. I don't understand. | 17:15 |
| ← Trepanator left | 17:16 |
| → albertito joined | 17:16 |
| ← xjjk left | 17:17 |
|
Ilari
| knobo: Lets say you have file that uses some pretty odd characters. You can't seem to find editor that can edit those characters properly AND supports UTF-8, but you want files in repo to be encoded in UTF-8. So you set up filters to convert character set from UTF-8 to whatever on checkout and from whatever to UTF-8 on add. | 17:19 |
| → jeckel joined | 17:19 |
| → cgardner joined | 17:19 |
|
Ilari
| knobo: Another example is to set filter to decompress files on add so they can be deltified against each other. | 17:19 |
|
johnflux
| Ilari: like ODF files :) | 17:20 |
|
Ilari
| johnflux: Yup. I even have written filter for that... | 17:21 |
|
johnflux
| awesome :) | 17:21 |
|
| btw git bisect is really cool | 17:21 |
|
| now that I've got it going :) | 17:21 |
|
knobo
| Ilari: how about rcs $Id$ tags? | 17:21 |
| ← radarek left | 17:21 |
|
Ilari
| knobo: Git has export-subst. | 17:22 |
| ← m3y3ring left | 17:22 |
| ← meyering left | 17:22 |
|
Ilari
| knobo: The idea is: While content is within SCM, use SCM services, and only write explicit version information on export from SCM. | 17:22 |
| ← powerfox left | 17:24 |
|
knobo
| Ilari: aha.. It does not fit for everybody though. But you can not please everyone.. | 17:24 |
| → carllerche joined | 17:24 |
|
knobo
| Maybe I have to say with subversion :( | 17:25 |
| → sverrej joined | 17:25 |
|
knobo
| I'll cry now...... | 17:25 |
|
| I have spent to much time trying to make this work. | 17:25 |
|
Ilari
| knobo: You have some stuff that doesn't require any building? | 17:25 |
|
| knobo: Maybe look at how git.git (the git itself) gets its version number. | 17:26 |
|
| knobo: What sort of project you would want that RCS $ID$ braindamage for anyway? :-> | 17:28 |
| ← hurikhan|Work left | 17:28 |
|
knobo
| Ilari: it's a lisp project. | 17:30 |
|
| Ilari: we reacently switched from rcs to subversion. But I thought I could use git via. git-svn. | 17:30 |
|
| The lisp system reads the $Id$, and remembers which version each function was compiled from. | 17:31 |
|
| So you can ask it in runtime. which version does this function come from. | 17:31 |
|
johnflux
| knobo: that's considered bad practise | 17:31 |
|
| knobo: it introduces merge conflicts :) | 17:31 |
| ← gitte left | 17:31 |
|
knobo
| subversion introduces merge conflicts. | 17:32 |
|
Ilari
| knobo: Maybe put special file into tarball that tells the version. Otherwise the lisp code could ask Git about the version... | 17:32 |
| ← jmesnil left | 17:32 |
|
johnflux
| yeah have your make system get the version from git and put that into a header file | 17:33 |
|
| then have your files include that header file | 17:33 |
| ← alb left | 17:34 |
| → willb1 joined | 17:34 |
|
Ilari
| knobo: For just ID of version 'git rev-parse --verify --quiet HEAD'. | 17:35 |
| → tango_ joined | 17:35 |
| → willb2 joined | 17:35 |
| ← nud left | 17:36 |
|
Ilari
| knobo: That dumps 40 hex digit version ID to stdout. | 17:36 |
|
knobo
| Ilari: I could use the ident function, and rewrite the code that reads the $Id, just to make it compile in my development repository. | 17:37 |
|
| Then deploy from somwhere else. | 17:37 |
| ← cedricv left | 17:37 |
| → pkern joined | 17:37 |
|
pkern
| Hi there. git alternates could only refer to other local repositories, right? I can't specify on a repo exported by dump http that one might find more objects at another repo exported with git-daemon? | 17:38 |
|
Ilari
| knobo: 'ident' basically writes (modified) SHA-1 of FILE into the file. | 17:38 |
| → cedricv joined | 17:38 |
| ← willb1 left | 17:38 |
|
Ilari
| knobo: Its not revision ID! | 17:39 |
| → gilimanjaro joined | 17:40 |
| ← cedricv left | 17:40 |
| ← cgardner left | 17:40 |
| → cory joined | 17:40 |
| cory → bantic | 17:40 |
| ← tango_ left | 17:43 |
| → ijcd_ joined | 17:44 |
| ← Cacheaway left | 17:45 |
| → Cacheaway joined | 17:45 |
|
Ilari
| pkern: Yes, alternates can only refer to local repositories. There's also HTTP alternates, but it is only used by HTTP fetching. | 17:46 |
| ← fhobia left | 17:47 |
| → dfarnsworth joined | 17:48 |
| ← willb left | 17:49 |
|
Ilari
| pkern: And I think that even those HTTP alternates can only refer to other repositories on the same server. | 17:49 |
|
dfarnsworth
| What's a good way, using existing git commands, to test if a commit is in a branch? | 17:50 |
|
Ilari
| dfarnsworth: 'git branch --contains <ID>'. | 17:51 |
| ← ceej left | 17:51 |
| → ankit9 joined | 17:51 |
|
dfarnsworth
| Ilari, hey! that' easy. In fact it rings a bell. Thanks. | 17:52 |
| → ceej joined | 17:52 |
|
pkern
| Ilari: Do you know how HTTP alternates would be specified, by chance? | 17:53 |
| → ia joined | 17:53 |
|
Ilari
| pkern: Actually, http-alternates can refer to other servers. But it is only read by fetch over HTTP (from REMOTE side!) | 17:56 |
| ← muthu_ left | 17:57 |
|
dfarnsworth
| Ilari, 'git branch --contains <ID>' shows me *all* branches that contain ID. So, it's slow. Any easy way to just check one branch, so I can speed it up? I can do it comparing the results of a couple of 'git-rev-list --max-count=1 ...'. I'm wondering if there is a better way. | 18:01 |
| → cgardner joined | 18:03 |
| → kyle__ joined | 18:04 |
|
Ilari
| dfarnsworth: 'git rev-list <branch> | grep `git rev-parse <id>`'? | 18:04 |
| ← mcella left | 18:04 |
|
Ilari
| dfarnsworth: Actually, 'git rev-list <branch> | grep `git rev-parse <id>` | head -1'. The head should quit after first line, killing grep with SIGPIPE, which should kill rev-list with SIGPIPE. | 18:06 |
| → tango_ joined | 18:08 |
| ← JonathanT left | 18:09 |
| ← lil-murph left | 18:12 |
|
knobo
| I dont understand what's wrong with rcs $Id$. It's been working for us since 1998 perfectly. | 18:12 |
|
pkern
| Ilari: How? (And yeah, I do have a http server but I want to spread the load by telling the clone/fetch client to get most of the stuff elsewhere.) | 18:12 |
|
pflanze
| Is it possible to merge a branch from another repository with a small depth (i.e. 1)? | 18:13 |
|
| Probably my question could be rephrased: is it possible to create grafts which work for cloning by other people? | 18:13 |
|
| (I'm assuming that the shallow clone feature is implemented using grafts, maybe I'm mistaken) | 18:14 |
|
flazz
| is #github now forwarded here? | 18:14 |
| ← tango_ left | 18:14 |
| → kRutOn joined | 18:15 |
|
kRutOn
| hello | 18:15 |
|
pflanze
| What I want to do is create a new repo which merges stuff from other repositories as subtree merges; but I only want to provide the history of that other projects from a particular point on; | 18:15 |
|
Ilari
| pflanze: Pull that branch? | 18:15 |
|
albertito
| knobo: man gitattributes | 18:15 |
|
Gitbot
| knobo: the gitattributes manpage can be found at http://git.or.cz/man/gitattributes | 18:15 |
| ← johnflux left | 18:16 |
|
pflanze
| and I want to still make it possible to incrementally merge subsequent changes done to these other repositories. | 18:16 |
|
albertito
| knobo: faq keyword expansion (I don't know how the faq bot works) | 18:16 |
|
Ilari
| pflanze: I don't think that's possible... | 18:16 |
| ← nibbo left | 18:16 |
|
albertito
| knobo: apparently not that way =) look for "Does git have keyword expansion?" | 18:16 |
|
pflanze
| So I'm back to rebasing / cherry picking somehow? | 18:17 |
|
dfarnsworth
| Ilari, the best I've found is 'git rev-list --reverse <id>^..<branch> | head -1'. I *think* that works. :) | 18:17 |
| ← sping_work left | 18:17 |
| ← agile left | 18:17 |
| ← ankit9 left | 18:19 |
| → Voker57 joined | 18:19 |
| → bobesponja joined | 18:20 |
| → murphl joined | 18:20 |
|
pflanze
| Is there a tool to take new patches from one branch and apply them to another? Remembering the last-applied patch. | 18:20 |
|
| And modify the commit message to contain a "upstream $repo $commitid" like line. | 18:20 |
|
| Sort of like the stable kernel branch is made. | 18:21 |
|
| Actually pretty much exactly the same thing. | 18:21 |
|
knobo
| albertito: I know about gitattributes. | 18:22 |
|
pflanze
| Any offering? | 18:22 |
| → vbabiy_ joined | 18:22 |
| → nibbo joined | 18:23 |
| ← not-xjjk left | 18:24 |
|
flazz
| if i want a gemspec picked up by github need i name it in the gemspec user-projname? | 18:26 |
| → xjjk joined | 18:28 |
|
cgTobi
| I try to use git in a mixed platform environment (Linux/OSX/WindowsXP). It works pretty well so far, except that I can't find a way to pull from windows machines. Can somebody give me a hint how to do that? | 18:30 |
| → boto_ joined | 18:31 |
| → tango_ joined | 18:31 |
| ← thadwheeler left | 18:33 |
|
xlq
| cgTobi: oh I see, because git-instaweb doesn't work on Windows? | 18:33 |
| ← naeu left | 18:33 |
|
cgTobi
| xlq: yeah, for example | 18:34 |
|
| xlq: git-deamon is also not available | 18:34 |
| → david_koontz joined | 18:34 |
| → alley_cat joined | 18:34 |
| → maronnax joined | 18:35 |
|
xlq
| cgTobi: really? Oh :( | 18:35 |
|
cgTobi
| xlq: I also tried to setup a ssh server on windows, but I couldn't make it prompt to the git-bash | 18:35 |
|
| xlq: I should note that I use msysGit on the windows machine | 18:35 |
|
maronnax
| This is a total noob question, but is there a good way to push the equivalent of a git-trunk to a subversion server? I know hardly anything about git but I'm interested in trying it out. However, the project I work on (it's just me really) is hosted on sourceforge and I use their svn servers. So I need some good way to push the changes I would make in the 'real' git repository to subversion. Does anyone have good advice here? | 18:37 |
| → ankit9 joined | 18:37 |
| → Sigma` joined | 18:37 |
| ← vbabiy left | 18:38 |
|
parasti
| maronnax: hmm, are you just looking for git-svn? | 18:39 |
| → putrycy joined | 18:39 |
|
maronnax
| parasti, cool, I think that's totally what I'm looking for. | 18:40 |
|
parasti
| if you have Git installed, you might have git-svn already (git svn --help to check) | 18:42 |
| ← gilimanjaro left | 18:42 |
|
parasti
| otherwise, look for it in your distros package repo or compile it | 18:42 |
| ← simmerz left | 18:42 |
|
parasti
| though I guess you just need Perl and there's nothing to compile | 18:43 |
| → joydivider joined | 18:43 |
| ← boto left | 18:46 |
| ← EiNZTEiN left | 18:46 |
| Sigma` → Sigma | 18:47 |
|
maronnax
| parasti, well thanks | 18:49 |
|
| I still have a fair amount of reading as to how best to locally administer git and set it up and all that, but knowing this, I can jump into it, you know? | 18:50 |
| ← jfontan left | 18:50 |
| → CodeOfficer joined | 18:51 |
| → geckosen1tor joined | 18:51 |
|
Ilari
| cgTobi: If you could mount the filesystem containing the git repository somehow... | 18:51 |
|
xlq
| cgTobi: can you do it over normal http? | 18:53 |
| → nud joined | 18:53 |
| ← geckosenator left | 18:53 |
| → perezd88 joined | 18:53 |
| → ReinH joined | 18:53 |
|
cgTobi
| Ilari: I'll probably have to do just that or stick with pushing | 18:54 |
|
| xlq: you can't push over http AFAIK | 18:55 |
|
xlq
| cgTobi: oh, you want pushing too | 18:55 |
| → juanjoc joined | 18:55 |
| → eddyp joined | 18:55 |
|
cgTobi
| xlq: sorry, no, pushing works fine via ssh, my fault. I mean I don't have a webserver on the windows machines | 18:56 |
|
| xlq: and its not supported by msysgit as far as I can tell | 18:57 |
|
pflanze
| maronnax, parasti: I'm not sure git-svn is suited for pushing git history to svn; rather the other way around; anyway I think that question has been asked on the git ml at least once. | 18:57 |
| → tokkee joined | 18:57 |
| → altrux_ joined | 18:57 |
|
pflanze
| The "normal" usage of git-svn is to import svn into git, then add linear history with Git on top and only push that linear history back. | 18:58 |
| rolfb_away → rolfb | 18:58 |
|
pflanze
| In any case you loose information with the pushing back (author, date, and non-linear history). | 18:58 |
|
altrux_
| howdy, i have a repo that had some of the production api keys commiited to it osme time ago, andi need to remove those, preferably retroactivly | 18:59 |
|
| how do i go about removing the history of a file | 18:59 |
|
Ilari
| The usual usage for Windows machines is to keep them on only when working on them and then turn them off... While Unix machines tend to be up 24/7... | 18:59 |
|
| That's the classical usage anyhow... | 18:59 |
|
| altrux_: man git-filter-branch | 18:59 |
|
Gitbot
| altrux_: the git-filter-branch manpage can be found at http://git.or.cz/man/git-filter-branch | 18:59 |
|
altrux_
| thanks so much! | 18:59 |
|
| i didn't know what to search on, my google_fu is weak today | 19:00 |
| ← eddyp left | 19:00 |
|
pflanze
| maronnax: also, I've seen people writing about how to mis-use google code svn repositories for publishing Git projects, but I don't remember exactly how they did it; it will be hackery in any case. | 19:00 |
|
| maronnax: note that google seems to be going to add Git to their offerings some time. | 19:01 |
|
| deskin wonders why you'd want to abuse google code when you can use github | 19:01 |
| → mauricio joined | 19:01 |
|
Voker57
| deskin: because github has no bugtracker, wiki and downloads? | 19:01 |
|
mauricio
| guys | 19:02 |
|
| i've checked out a remote branch | 19:02 |
|
| and set a local branch to track it | 19:03 |
|
| now i get this after some work | 19:03 |
|
| "Your branch is ahead of the tracked remote branch 'origin/css_changes_shaun' by 3 commits. | 19:03 |
|
| " | 19:03 |
|
| and it doesn't really seems to make sense to me | 19:03 |
|
xlq
| I appear to be unable to clone from an instaweb | 19:03 |
|
mauricio
| i've used this tutorial to get this working -> http://www.zorched.net/2008/04/14/start-a-new-branch-on-your-remote-git-repository/ | 19:04 |
| boto_ → boto | 19:04 |
|
pflanze
| mauricio: this is exactly what you should expect, isn't it? | 19:04 |
|
| you did 3 commits, right? | 19:04 |
|
mauricio
| yep | 19:04 |
|
| but if i push | 19:04 |
|
| i get noshing | 19:04 |
|
| "already up to date" | 19:05 |
|
| but the commits aren't being pushed | 19:05 |
|
pflanze
| ah, you need to mention the branch probably | 19:05 |
| ← ahupp|fb left | 19:05 |
|
pflanze
| git push origin css_changes_shaun | 19:05 |
|
| maybe you aren't on that branch locally, btw; check with git branch -av | 19:06 |
|
mauricio
| * css_changes_shaun_local 374983f Free news items | 19:06 |
|
| master 0af7241 specs | 19:06 |
|
| origin/HEAD 0af7241 specs | 19:06 |
|
| origin/before_new_design f0e3810 Revert "Beta invites implementation" | 19:06 |
|
| origin/css_changes 4982e21 Merge branch 'css_shanges_shaun' of ssh://mauricio@dev.talkies.de/repos/talkies.git into css_changes | 19:06 |
|
| origin/css_changes_shaun ab43ee3 Refactor CSS. More components added to the styleguide. | 19:06 |
|
| origin/css_changes_shaun_local 374983f Free news items | 19:06 |
|
| origin/css_changes_shaun_test f554636 Merge branch 'css_changes_shaun' of ssh://ivor@dev.talkies.de/repos/talkies into css_changes_shaun_test | 19:06 |
|
| origin/css_shanges_shaun 374983f Free news items | 19:06 |
|
| origin/master 0af7241 specs | 19:06 |
|
| origin/new_design 9fa8cfc Tweaking actor detail page | 19:06 |
|
| origin/rails_pre_2.1 f79d97f adding host to test mailer | 19:06 |
|
| this is the output | 19:06 |
|
| right now i'm at css_changes_shaun_local | 19:06 |
|
pflanze
| please don't paste more than about 3 lines. | 19:06 |
|
mauricio
| ops | 19:07 |
|
| sorry | 19:07 |
|
pflanze
| if necessary, use a paste service for it. | 19:07 |
| → ahupp|fb joined | 19:07 |
|
mauricio
| [branch "css_changes_shaun_local"] | 19:07 |
|
| remote = origin | 19:07 |
|
| merge = refs/heads/css_changes_shaun | 19:07 |
|
| this is the branch config | 19:07 |
|
| which seems to be fine for me | 19:07 |
|
| (not that i'm specifically good with git anyway...) | 19:07 |
| ← ahupp|fb left | 19:08 |
|
pflanze
| yep, and your remote and local are the same commit, 374983f | 19:08 |
|
| so, where exactly does git (still?) say you're 3 commits ahead? | 19:08 |
|
parasti
| pflanze: that's a good point -- I only asked about git-svn because the OP mentioned an existing project, but it makes no sense to host a Git project in Subversion | 19:08 |
|
mauricio
| holy shit | 19:08 |
| → synchris joined | 19:09 |
|
mauricio
| pflanze, well, there was no css_changes_shaun_local at the remote branch | 19:09 |
| → dreiss joined | 19:09 |
| → unreal_ joined | 19:09 |
|
xlq
| Git-instaweb is working (I can see localhost:1234 in a web browser). How can I git-clone from that? | 19:09 |
|
mauricio
| pflanze, or at least there shoudn't be one, this is my local branch that tracks css_changes_shaun | 19:10 |
| → jfontan joined | 19:10 |
|
pflanze
| mauricio: yes, you've probably created that one now | 19:10 |
| ← nibbo left | 19:10 |
|
mauricio
| pflanze, how? | 19:10 |
|
pflanze
| did you run my command? if so, that's the culprit, sorry | 19:11 |
|
mauricio
| pflanze, :( no prob | 19:11 |
|
| pflanze, but do you have any idea about wha'ts happening? | 19:12 |
|
| why is it creating a new branch when it should push to the tracked branch? | 19:12 |
|
pflanze
| two solutions: either get the git config right, or use correct push syntax; | 19:12 |
|
| since I'm not using the latter frequently maybe someone else can tell. | 19:12 |
|
mauricio
| pflanze, and how do i get git config right? | 19:13 |
|
pflanze
| well, man git-push says, refspec can contain both the source and target parts | 19:13 |
|
Gitbot
| well: the git-push manpage can be found at http://git.or.cz/man/git-push | 19:13 |
|
mauricio
| pflanze, it seems to be ok | 19:13 |
|
pflanze
| your config only contains a merge, not push entry, it seems | 19:13 |
|
mauricio
| hum | 19:13 |
|
pflanze
| it only has remote = origin, and assumes the name of the remote branch is the same as the local | 19:14 |
|
| you really probably want to merge back your local branch to the css_changes_shaun branch | 19:14 |
|
| i.e. "git checkout css_changes_shaun; git merge css_changes_shaun_local; git push" | 19:14 |
|
| that would be the +-normal way of doing things. | 19:15 |
|
| You *can* configure git to use different remove branch names for local branches; | 19:15 |
|
| but it may only confuse you in the long term. | 19:15 |
| → nud_ joined | 19:15 |
| ← xlq left | 19:16 |
| → dkerschner joined | 19:17 |
|
mauricio
| pflanze, if i git checkout css_changes_shaun i get this: | 19:17 |
|
| try error: pathspec 'css_changes_shaun' did not match any file(s) known to git. | 19:17 |
| → evalsaidem joined | 19:17 |
|
mauricio
| pflanze, if i try git checkout origin/css_changes_shaun | 19:18 |
|
| it seems to be ok | 19:18 |
| → brandon joined | 19:18 |
|
mauricio
| i can merge and it seems to work | 19:18 |
|
pflanze
| mauricio: ah yep, you don't have such a branch actually. | 19:18 |
|
mauricio
| but when i pull i get another 'its already upt do date' | 19:18 |
|
| *when i push | 19:18 |
|
brandon
| what does 'fatal: impossibly long personal identifier' mean if git svn rebase fails? | 19:18 |
|
pflanze
| mauricio: you need to rename your local branch | 19:18 |
|
| git checkout master; git branch -m css_changes_shaun_local css_changes_shaun | 19:18 |
| → nice_burger joined | 19:18 |
| → charon joined | 19:19 |
| → naeu joined | 19:19 |
|
pflanze
| then git checkout css_changes_shaun; git push | 19:19 |
|
| Maybe the "git branch -m" works also while you'r on that branch, I don't remember. | 19:20 |
|
mauricio
| OMG! | 19:20 |
|
| man | 19:20 |
| ← willb2 left | 19:20 |
|
mauricio
| it seems to work | 19:20 |
|
| pflanze, thanks! | 19:20 |
| ← nud left | 19:20 |
|
mauricio
| i've been struggling with this since morning | 19:20 |
|
brandon
| anyone have an idea about my git svn issue? | 19:20 |
|
pflanze
| mauricio: for some reason, you checked out that branch under a name which differs from the remote branch name; you should not do that :) | 19:21 |
|
mauricio
| pflanze, the tutorials said it wasn't a problem :( | 19:21 |
| ← putrycy left | 19:21 |
|
pflanze
| well, in which way not a problem? | 19:21 |
| → nibbo joined | 19:21 |
|
pflanze
| can you tell the URL? | 19:21 |
| → niki joined | 19:21 |
| → not-xjjk joined | 19:21 |
|
pflanze
| ah, got it | 19:21 |
| → SyntaxRebel joined | 19:22 |
|
mauricio
| pflanze, http://www.zorched.net/2008/04/14/start-a-new-branch-on-your-remote-git-repository/ | 19:22 |
|
| look at use branch from another location | 19:22 |
| ← ankit9 left | 19:22 |
|
mauricio
| pflanze, git checkout --track -b new_branch origin/new_feature_name | 19:22 |
|
SyntaxRebel
| why does git always use "more" as its pager? even why i set GIT_PAGER=less -R, it still uses more! :S | 19:22 |
| ← qrush left | 19:22 |
|
pflanze
| mauricio: he says "git checkout --track -b new_feature_name origin/new_feature_name"; | 19:23 |
|
| and of course you *can* choose another name; but then, as you've seen, | 19:23 |
|
mauricio
| if you've created the branch yourself | 19:23 |
|
| look after this | 19:23 |
|
pflanze
| you need to tell Git where to push to. | 19:23 |
|
mauricio
| at "use branch from another location" | 19:23 |
|
| i'm really hoping my pragmatic version control using git arrives before christhmas | 19:24 |
|
| hopefully these problems will not appear again :) | 19:24 |
|
pflanze
| It's not a problem. | 19:24 |
|
mauricio
| pflanze, for me that doesn't know what's happening, it is :) | 19:24 |
|
pflanze
| He doesn't pretend that after this command Git knows where to push it back to, from what I can see. | 19:24 |
|
| Why not write him a reply and ask for how he'd set it up so that pushing works too? | 19:25 |
| ← unreal left | 19:26 |
|
pflanze
| mauricio: btw mention your Git version, since newer Gits might have changed behaviour to add push too upon that --track option, dunno. | 19:27 |
|
Ilari
| Later git versions recognize push refspec ':' which acts as the default push all matching. | 19:27 |
| → jberg- joined | 19:27 |
|
mauricio
| 1.5.6 | 19:27 |
|
SyntaxRebel
| does git use GIT_PAGER for help pages? | 19:28 |
| → rtomayko joined | 19:28 |
|
mauricio
| pflanze, that's what i'm about to do, just checking out that the push ocurred correctly | 19:28 |
|
pflanze
| Ilari: hm, not sure what "all matching" would mean here; he's got (or: he had) a local branch name differing from the remote branch name. | 19:29 |
|
charon
| SyntaxRebel: 'git foo --help' is just a fancy way to spell 'man git-foo' | 19:29 |
|
Ilari
| mauricio: Maybe look at 'git ls-remote' output and see what it prints for pointer value for that branch and then compare to what was pushed? | 19:29 |
|
SyntaxRebel
| charon: as it "git help foo"? | 19:29 |
|
| as is* | 19:29 |
|
pflanze
| Ilari: git branch -av should be as good for this, right? | 19:29 |
| ← kumbayo left | 19:29 |
|
SyntaxRebel
| yep, i need to change PAGER :) | 19:29 |
|
charon
| SyntaxRebel: yes. | 19:30 |
|
Ilari
| pflanze: ls-remote looks at the remote repository, git branch only looks at local repository... | 19:30 |
|
charon
| actually, there appear to be configuration options for both the format (man, info, html) and viewer used, but it defaults to man using 'man'. | 19:30 |
|
pflanze
| But after a push, the remote and local will be the same. | 19:30 |
|
| His problem is that the branch was of a different name. | 19:30 |
|
| And .git/config only had a merge entry, none for push. | 19:31 |
|
| For that local branch. | 19:31 |
|
mauricio
| pflanze, yep, both branches pointing to the same commit :) | 19:31 |
|
pflanze
| It seems that "git checkout --track -b new_branch origin/new_feature_name" doesn't set up a push entry. | 19:31 |
|
| Only a merge one. | 19:32 |
|
| Or at least, it did this for his git version. | 19:32 |
| ← niki left | 19:32 |
|
SyntaxRebel
| charon: thanks btw. :) | 19:32 |
| ← xjjk left | 19:32 |
|
pflanze
| mauricio: anyway, this new_branch example doesn't make any sense to me; if he wanted to demonstrate adding multiple remotes, i.e. another one than "origin", then using a different local branch name would make sense. | 19:33 |
|
mauricio
| pflanze, i guess the idea is that you can track the new branch from anywhere | 19:34 |
|
pflanze
| Otherwise, you check the remote branch out under the same name; you can always create new branches locally from that afterwards, | 19:34 |
|
mauricio
| pflanze, and looking at the comments, there's a guy saying that it wasn't working for him too | 19:34 |
|
pflanze
| but you usually merge back changes to the original branch then before pushing; this way things stay clear. | 19:34 |
|
| Yes, but then his example would have to look like: | 19:35 |
|
| git remote add $someurl | 19:35 |
|
| sorry | 19:35 |
|
| git remote add otherorigin $someurl | 19:35 |
|
| and then | 19:35 |
|
| git checkout --track -b new_branch otherorigin/new_feature_name" | 19:35 |
|
mauricio
| yeah | 19:35 |
|
pflanze
| only *then* it would make sense to use a different local name, | 19:35 |
|
| since you could conflict with the same branch name from another origin server. | 19:36 |
|
Ilari
| The use for ':' is as 'remote.foo.push' value and as push refspec when other refspecs are explicitly specified... | 19:37 |
| ← kyle__ left | 19:38 |
| ← evalsaidem left | 19:38 |
|
pflanze
| Ilari: I'm not sure I understand your sentence. You'd do "git config remote.foo.push :"? Would this make git look at the "merge" refspec and then figure out from that where to push to? | 19:40 |
|
| (mauricio: just in case you're running Debian or Ubuntu and want to try a newer Git: http://repo.or.cz/w/gitcj-debian.git) | 19:42 |
| → ankit9 joined | 19:42 |
|
mauricio
| i'm at openSUSE :) | 19:42 |
|
| if i get a newer version locally | 19:43 |
|
| do i need to upgrade the server? | 19:43 |
|
| pflanze, just to be sure :D | 19:43 |
|
pflanze
| nah, if the version matters at all for this case, it will be the local one. | 19:43 |
| ← jonshea left | 19:47 |
| ← ceyusa left | 19:48 |
| → pygi joined | 19:48 |
| → xjjk joined | 19:49 |
| → qrush joined | 19:51 |
|
cgardner
| Are there any tutorials on writing hooks for git? Aside from the man pages? | 19:52 |
|
mauricio
| cgardner, do you mean hooks like post-commit? | 19:52 |
|
pflanze
| Look at the example scripts in .git/hooks/, I think they are all documented | 19:52 |
|
cgardner
| mauricio: yes. | 19:52 |
|
mauricio
| cgardner, do as pflanze said, they are well documented | 19:53 |
|
altrux_
| ok so i had 2 git-filter-branch commands to run, and the first one was flawless, now im getting a 'Namespace refs/original/ not empty' error, do i just need to find this Namespace refs/original/ and delete it? | 19:53 |
|
| sorry kind of worried about fubaring my archive | 19:53 |
| ← synchris left | 19:53 |
|
pflanze
| altrux_: yes, trash .git/refs/original/$thefile | 19:53 |
|
mauricio
| cgardner, they'll give you the variables you want, it's just a matter of writting what you want in your preferred language | 19:54 |
|
pflanze
| altrux_: if you're on a recent enough git, it has "git reflog" and you can use that to get back to previous state anyway | 19:54 |
|
altrux_
| ok cool | 19:54 |
|
| i got backups before is tarted too | 19:54 |
| → orkim joined | 19:54 |
| ← mauricio left | 19:56 |
| ← bartman left | 19:56 |
|
cgardner
| mauricio: Is this the only documentation for the hooks? http://www.kernel.org/pub/software/scm/git/docs/githooks.html | 19:56 |
| ← murphl left | 19:56 |
|
cgardner
| that's all I could find in the online documentation | 19:56 |
|
| err... on the kernel.org documentation | 19:57 |
|
pflanze
| cgardner: *have* you looked at the example scripts? | 19:57 |
|
cgardner
| yeah, they don't really help a lot | 19:57 |
| ← sdboyer left | 19:57 |
|
cgardner
| I've figured it out, I just was wondering if there was any other documentation... | 19:57 |
|
pflanze
| What did you figure out which was not documented? | 19:57 |
|
| I suggest you just write a patch to either the scripts or the docs, and send it to the git ml. | 19:58 |
| → niki joined | 19:58 |
| ← not-xjjk left | 19:59 |
| → bartman joined | 19:59 |
| → _Vi joined | 20:00 |
| ← lorandi left | 20:00 |
| ← AaronLBorg left | 20:02 |
| → sdboyer joined | 20:03 |
| ← nice_burger left | 20:04 |
| ← DrNick left | 20:07 |
| ← flazz left | 20:10 |
| → flazz joined | 20:11 |
| EiNZTEiN_ → EiNZTEiN | 20:11 |
| → synchris joined | 20:11 |
| → __ash__ joined | 20:11 |
| → _psychic_ joined | 20:11 |
|
__ash__
| um.... anyone in here a guru of git? | 20:12 |
| ← grahal left | 20:12 |
|
Ilari
| __ash__: Well, shoot anyway... :-> | 20:12 |
| ← brandon left | 20:12 |
| ← agib left | 20:13 |
| ← iulian left | 20:13 |
|
__ash__
| error: remote 'refs/heads/master' is not an ancestor of | 20:13 |
|
| local 'refs/heads/master'. | 20:13 |
|
| whenever i do a push i get a | 20:13 |
|
| i get that ^^ | 20:13 |
|
| and i was wondering what is the right way to fix this issue | 20:13 |
|
Ilari
| __ash__: Maybe somebody else has updated the remote repository? | 20:14 |
|
__ash__
| its sorta steming from a bad suggestion by someone to do a git reset --soft HEAD | 20:14 |
|
| no, i am the only one that has | 20:14 |
|
pflanze
| If nobody fetched from your repository, use git push --force | 20:14 |
|
__ash__
| is there a way i can just tell it to override whats on the remote? | 20:14 |
|
| gotcha | 20:15 |
|
pflanze
| If somebody did fetch, you'll screw up his history a bit. | 20:15 |
| → DrNick joined | 20:16 |
| ← ebzzry left | 20:16 |
| → lanwin joined | 20:17 |
|
pflanze
| (and/or give him merge conflicts, depending on your local changes) | 20:18 |
| → agile joined | 20:18 |
| → kennethlove joined | 20:19 |
|
jogla
| where can i find documentation about submodule? | 20:20 |
|
| man git-submodule does only explain some comments | 20:20 |
|
Gitbot
| jogla: the git-submodule manpage can be found at http://git.or.cz/man/git-submodule | 20:20 |
| ← ankit9 left | 20:21 |
|
jogla
| hmm.. the description section is missing in my manpage | 20:21 |
| → ahupp|fb joined | 20:22 |
| ← cgTobi left | 20:22 |
| edwardam → edwardam_lunch | 20:23 |
| → ezyang joined | 20:23 |
| ← nud_ left | 20:24 |
| ← hobodave left | 20:24 |
| → hobodave joined | 20:25 |
| → cgTobi joined | 20:27 |
| → krunk-|work joined | 20:28 |
|
krunk-|work
| I was getting these errors when trying to push/pull from a remote repo: zsh: command not found: git-receive-pack | 20:30 |
|
| some googling indicates this is because only .bashrc/.zshrc is sourced and not, say, .zshenv. is there a way to change this behavior so that the environment file is also sourced? | 20:31 |
|
cgTobi
| is there a big difference between making a copy of a git repo and cloning it (locally) | 20:32 |
|
| ? | 20:32 |
|
jogla
| when you clone it, your origin will be set | 20:33 |
|
azuk
| krunk-|work, that doesn't sound credible | 20:33 |
| ← _psychic_ left | 20:33 |
|
deskin
| cgTobi: minor difference: cloning will hard-link the pack files, so you'll start off with minor additional disk usage | 20:33 |
|
Ilari
| krunk-|work: Put PATH redefintion in .zshrc? | 20:33 |
|
cgTobi
| jogla & deskin: cheers | 20:34 |
| ← bartman left | 20:34 |
|
krunk-|work
| Ilari: I have a really extensive zshenv, it'd be kludgy to do so and is not recommended as the "most correct way" by the zsh docs | 20:35 |
|
| azuk: hm, what could it be then? I'll put the needed path in the rc just to test | 20:35 |
| → bartman joined | 20:36 |
| → c0sin joined | 20:36 |
| ← jeckel left | 20:37 |
|
azuk
| I assume you are pushing/pulling over ssh? what exactly would run zsh in such a way that .zshenv isn't read? it just doesn't sound sensible to me | 20:37 |
|
krunk-|work
| azuk: sounded weird to me too, honestly | 20:39 |
|
azuk
| actually, it's precisely .zshenv that I would expect to be read | 20:39 |
| → b_jonas joined | 20:41 |
|
krunk-|work
| ohhh I think I know what it is, I think I ran into this before. need to check something. | 20:41 |
| ← lukedal left | 20:41 |
| → drizzd joined | 20:42 |
|
b_jonas
| I think I'll have to try git one of these days because I hate svn more and more as I use it | 20:42 |
| ← Voker57 left | 20:45 |
| ← nothinghappens left | 20:45 |
|
Ilari
| b_jonas: Why won't you do little test project to learn the basics of how to use it locally? | 20:46 |
|
drizzd
| b_jonas: make; make install; mkdir test; cd test; git init; touch file; git add file; git commit -m myfirstcommit; that's it! | 20:47 |
|
krunk-|work
| 10m and a cheat sheet and you're ready to go with git | 20:48 |
|
b_jonas
| drizzd: yeah, that much is ok | 20:49 |
|
| if I only had to do that svn worked too | 20:49 |
|
| it's the more complicated parts where I get annoyed with svn | 20:49 |
|
krunk-|work
| pretty sure this is a due to an error being output by one of the scripts sourced in /etc/profile on the server. the error causes ssh to abort | 20:49 |
|
| I think I ran into it with a non-git related issue | 20:50 |
|
b_jonas
| the slow speed is the least annoyance -- recently I did a mass renaming of twelve files and each 'svn rename' took like three seconds | 20:50 |
|
| but there are also more important problems | 20:50 |
| → willb joined | 20:50 |
|
Weiss
| b_jonas: i found git hardgoing at first when i started doing anything more trivial than "commit", but after a few days it felt very natural. it's best to have someone patiently explain it to you, and read that "git for computer scientists" document | 20:51 |
| ← alikins left | 20:51 |
|
bmalee
| We've had so much trouble with svn branching at work recently...makes me even more glad of git. Don't think I'll manage to get the rest of the department converted, though... | 20:51 |
|
b_jonas
| there does not seem to be an easy way with svn to make it treat a file as a copy of another (as in svn copy or svn move) if I already have copied the file in the work dirs -- it insists on wanting to actually copy the file | 20:51 |
| → perezd88_ joined | 20:53 |
|
b_jonas
| I'm using svn mostly for managing projects only I work on on my home computer btw | 20:54 |
| ← perezd88_ left | 20:54 |
|
b_jonas
| and I'd use git for the same as well | 20:54 |
|
PerlJam
| b_jonas: what? | 20:59 |
|
| b_jonas: svn groks symlinks | 20:59 |
| → nud_ joined | 20:59 |
| ← pkern left | 21:00 |
|
b_jonas
| PerlJam: it does, but you can only create them in two ways, and neither helps for me: | 21:01 |
|
| either you svn copy a file in your working copy, which it does not want to do if you already have created the target file | 21:02 |
|
| so in that case you have to move the target file, do the svn copy, and move it back to that name, and commit | 21:02 |
|
| which suks | 21:02 |
|
| (the other way is to directly svn copy the file in the repo, but then you need to check it out which gives the same problem and it also requires another commit for the editing) | 21:03 |
| → kyle__ joined | 21:03 |
| ← bieneff left | 21:05 |
|
Ilari
| b_jonas: Git works in terms of snapshots. That's why it doesn't have 'git cp'. And 'git mv' is purely for convience... | 21:05 |
| → RichiH joined | 21:06 |
|
RichiH
| ok, question | 21:06 |
|
| i have a repo, foo.git | 21:06 |
|
| it pulls from a reomte source | 21:07 |
|
| into a branch called upstream | 21:07 |
|
Ilari
| RichiH: Branch, not a remote? | 21:07 |
| ← perezd88 left | 21:08 |
|
Ilari
| RichiH: Ah, its bare repo, so probably a branch... | 21:08 |
|
RichiH
| Ilari: does not really matter, it's hypothetical anyway. as i am not very sure of git's nomenclature, assume whatever makes more sense ;) | 21:08 |
|
| three branches, feature1, feature2 and fix1 are based on upstream | 21:09 |
|
Ilari
| RichiH: Or a namespace (would also make sense in bare repo). | 21:09 |
|
RichiH
| the master branch merges feature1, feature2 and fix1 (think topgit) | 21:09 |
|
b_jonas
| if I understand right, svn copy (and svn move) works by setting the parent of a file another file in the same repo, so at next commit it will diff from that file, and the logs and history later will follow the copies | 21:09 |
|
| but there doesn't seem to be a way to just directly set the parent of a new file when I add it | 21:09 |
|
| so the interface is inconvenient | 21:10 |
|
RichiH
| now, i tag the current state of master | 21:10 |
|
| and develop in feature2, create fix2 and merge it into master, as well | 21:10 |
|
| master is updated with the contents of feature2 and fix2 | 21:11 |
| ← _Vi left | 21:11 |
|
RichiH
| 1) will that update of master happen automagically? | 21:11 |
|
| 2) is there a way to create a tar.gz from tagged state of the master branch even though it's not the most current, any more? | 21:11 |
|
Ilari
| RichiH: Well, somebody has to create the new state... | 21:12 |
|
uau
| b_jonas: if you care about that in svn then you'll like git even less | 21:12 |
|
| because git lacks any functionality to express where a file comes from | 21:12 |
|
Ilari
| RichiH: 'git archive <committish>' can accept any valid commit ID to produce archive from. Tag names are valid committishes. | 21:13 |
|
RichiH
| Ilari: is that an answer to 1)? | 21:13 |
|
| ok, perfect | 21:13 |
|
Ilari
| RichiH: I think its not updated automatically. | 21:14 |
|
uau
| RichiH: branches basically never change automatically | 21:14 |
|
b_jonas
| uau: really? | 21:14 |
|
uau
| you have to explicitly check out that branch and merge stuff into to incorporate changes from other branchs | 21:14 |
|
b_jonas
| uau: how would it store representations efficently? | 21:14 |
|
RichiH
| ok, thanks | 21:14 |
|
| makes sense, that way | 21:14 |
|
b_jonas
| uau: I mean, they say they store the repo compactly | 21:14 |
|
| so it has to handle file moves | 21:14 |
| → kumbayo joined | 21:14 |
| ← cgTobi left | 21:15 |
|
RichiH
| but even if i updated the master branch, i will always be able to create a tar from the state it had some time in the past? | 21:15 |
|
uau
| b_jonas: the storage is in a lower layer; how it works has no direct impact to anything visible in the UI | 21:15 |
|
Ilari
| b_jonas: It collapses identical copies using hashes. And it has heuristics to figure out what objects to delta against each other. | 21:15 |
| → joshdavey_ joined | 21:15 |
|
uau
| except performance | 21:15 |
| ← joshdavey left | 21:15 |
|
b_jonas
| Ilari: I see | 21:15 |
|
Ilari
| RichiH: The master branch pins those states, so they are available for archive creation. | 21:16 |
|
drizzd
| essentially it's like creating an archive for all objects, just smarter | 21:16 |
|
uau
| b_jonas: git has some heuristics to guess what were supposed to be moves/copies after the fact (when looking at the history later) | 21:16 |
|
RichiH
| Ilari: perfect, thanks | 21:16 |
|
uau
| but they're neither particularly reliable nor work consistently (in the sense of exactly how each tool uses those heuristics to affect its output) | 21:17 |
| → tjogin joined | 21:17 |
|
b_jonas
| pity | 21:17 |
|
| the moves are not only convenient because of the efficent representation | 21:18 |
|
RichiH
| hmm | 21:18 |
|
b_jonas
| but because this way when you query the log of a moved file you'll get the logs of the old file too | 21:18 |
|
RichiH
| can i use the same tag several times? | 21:18 |
|
| i.e. can i tag master STABLE several times? | 21:18 |
|
drizzd
| b_jonas: that usually also works with git | 21:18 |
|
RichiH
| to create a moving target which can be used to generate tar.gz? | 21:18 |
|
drizzd
| b_jonas: furtheremore, with git, you're not usually interested in the history of a file | 21:18 |
|
| b_jonas: you're either interested in the history of the entire project, a subdirectory, or maybe just a few lines of a file. But rarely do you care about any file in particular. | 21:19 |
|
uau
| RichiH: you can delete tags and create new ones using the same name | 21:19 |
|
RichiH
| b_jonas: git is different from svn. it does not really know/care about files. all it does is manage diffsets | 21:19 |
|
| uau: can i tag one state with two names? | 21:19 |
|
uau
| but IIRC that does not work well with cloning (outdated tags are not automatically updated on repositories that pull from the updated one) | 21:20 |
|
RichiH
| i.e. STABLE and STABLE_081205 | 21:20 |
|
uau
| yes there are no limitations on that | 21:20 |
|
b_jonas
| well, svn also cares less about files than cvs | 21:20 |
| ← esden left | 21:20 |
| → alikins joined | 21:20 |
|
drizzd
| b_jonas: how so? | 21:20 |
| → aknowles joined | 21:20 |
|
b_jonas
| drizzd: cvs does not have moves, so each file is separate, also cvs has separate version numbers for each file so there are no versions which represent a version of the whole project unless you use a tag or a date, | 21:21 |
|
RichiH
| uau: k | 21:21 |
|
| thanks | 21:21 |
|
drizzd
| b_jonas: I see. Well that's similar to git then. | 21:22 |
|
b_jonas
| also cvs commit handles each file as a separate commit, with separate commit messages and no relations. | 21:22 |
| edwardam_lunch → edwardam | 21:22 |
|
b_jonas
| I don't really care about this because I don't use cvs anymore for some time | 21:22 |
|
| I used to work with cvs for a little time | 21:22 |
|
| in a larger project | 21:23 |
|
| and I also tried it at home back when I didn't really know about the other version control systems | 21:23 |
|
RichiH
| can i tag a state that is in the past? | 21:23 |
|
uau
| RichiH: you can tag arbitrary objects | 21:23 |
|
| even things other than commits | 21:23 |
|
RichiH
| uau: ok | 21:23 |
|
Ilari
| RichiH: Anything that has object ID can be tagged. | 21:24 |
|
uau
| like individual file contents or a directory tree | 21:24 |
|
RichiH
| but due to me being able to delete tags, i can create inconsitent states, no? | 21:24 |
|
uau
| what do you mean by "inconsistent"? | 21:24 |
|
b_jonas
| uau: ah, so in git tags and branches are different things? | 21:24 |
|
uau
| consistency of what? | 21:24 |
|
Ilari
| RichiH: Even other (annotated) tags can be tagged. :-) | 21:24 |
|
RichiH
| uau: well, if i refer to another git repo by tag and that tag moves | 21:24 |
|
uau
| b_jonas: well... depends on how you view it | 21:25 |
|
b_jonas
| iirc svn handles branches as a special kind of tag which have a default future history line too, not just a past history line | 21:25 |
|
| s/svn/cvs/ | 21:25 |
|
| sorry | 21:25 |
|
RichiH
| or some other contruction which relies on a tag | 21:25 |
|
Ilari
| RichiH: Well, to name a state in globally signaficant manner, you need to use its commit ID. | 21:25 |
|
b_jonas
| branching is one thing that's I think done better in cvs than svn | 21:25 |
|
Ilari
| RichiH: Tags are only 'semi-global'. | 21:25 |
|
RichiH
| Ilari: that's what i meant, yes | 21:25 |
|
b_jonas
| but the other differences outweigh that | 21:25 |
| ← shep-werk left | 21:25 |
|
RichiH
| so that is by design, then | 21:25 |
|
b_jonas
| though the cvs way isn't that good either | 21:26 |
|
RichiH
| not a decission i would make, but OK. now that i know, it can be accounted for | 21:26 |
|
uau
| b_jonas: in git both branches and tags are at their most basic just simple pointers to objects, "name"->SHA1_HASH | 21:26 |
|
b_jonas
| uau: but a branch has to know it future lineage | 21:26 |
|
uau
| a branch points to its current state | 21:26 |
|
b_jonas
| that is, if I understand correctly, in git you can have separate commits that have the same commits as parents | 21:26 |
|
Ilari
| RichiH: In git, the only real difference between branches and tags is that HEAD can only point to branch (or be detached) and thus only branches can be committed on. | 21:27 |
|
b_jonas
| I See | 21:27 |
|
uau
| when you make a commit in a branch you first create a new commit object representing the new state, then update the branch pointer to point to that state | 21:27 |
|
b_jonas
| so a branch works by having a "current" branch and making that point to the new version when you commit? | 21:27 |
|
| that makes sense actually | 21:27 |
| ← bdiego left | 21:27 |
|
uau
| so creating a new branch is basically just creating a pointer that tells the value of one SHA1 hash | 21:28 |
|
Ilari
| b_jonas: HEAD is usually pointer to current branch. When you commit, that branch is updated. | 21:28 |
|
uau
| (though in practice there are extra convenience features like branch reflogs which tell how the branch has been edited over time) | 21:28 |
|
b_jonas
| yes | 21:28 |
|
| whereas svn has linear time so you can't have separate branches of the same file at a time, and cvs has linear time per branch, so you can only have one next version of a version in each branch | 21:29 |
|
| or something like that | 21:29 |
|
azuk
| RichiH, note that git pull doesn't change move/delete tags | 21:29 |
|
Ilari
| b_jonas: Those are called symrefs (symbolic references) they pretty much function like symlinks (in fact, Git interprets ref file being symlink by treating it as symref to corresponding place). | 21:29 |
|
RichiH
| so are tags valid within, but ot across repos? | 21:30 |
|
Ilari
| RichiH: Tags are valid only in repo that they are made in until they are transferred to other repos. | 21:30 |
|
| RichiH: You can push and fetch tags. | 21:30 |
| → mosno joined | 21:31 |
|
RichiH
| so while i pull code, i fetch tags? | 21:31 |
| → mjc joined | 21:32 |
|
RichiH
| i.e. use different commands? | 21:32 |
|
uau
| yes by default you fetch tags from the remote repo too (though there are options which affect that behavior) | 21:32 |
|
| but by default tags which have changed in the remote repo are NOT updated later | 21:33 |
|
azuk
| RichiH, no, you get tags with pull as well, pull is fetch + merge | 21:33 |
| → esden joined | 21:33 |
|
azuk
| RichiH, I suggest you read some tutorial / user's manual | 21:34 |
|
krunk-|work
| hm, I see what's going on now. looks like git 1.6.x does not put the git-upload-pack and such binaries in $path/bin but in $path/libexec but the push/pull operation is looking for them in bin | 21:34 |
|
| er I need to add the $path/libexec to my path | 21:35 |
|
Ilari
| RichiH: And tags don't belong to any 'branch' they are essentially 'branch-like' themselves (for instance, you can create new branch starting from tag). | 21:35 |
|
doener
| krunk-|work: actually, upload-pack and such should be in bindir | 21:35 |
|
| krunk-|work: http://git.pastebin.com/m2082a9f8 | 21:36 |
| → not-xjjk joined | 21:36 |
|
RichiH
| azuk: i am doing that, but bouncing ideas off other people's minds is faster/better in some circumstances | 21:37 |
|
krunk-|work
| doener: huh, wonder what went awry with my install | 21:37 |
|
| doener: just checked another system with git installed by macports, they're in bin. but on this one where I installed by hand, they're not | 21:37 |
|
RichiH
| Ilari: wouldn't the tag need to be persistant once i branch off from it? | 21:37 |
|
krunk-|work
| maybe a config option | 21:37 |
|
RichiH
| or is the tag i branch from just the commit in branch x? i.e. a softlink? | 21:38 |
|
Ilari
| There are three really important things in Git repository: Pointer to current branch, refname to commit ID mapping and object ID to object contents mapping. | 21:38 |
| → ajonat joined | 21:38 |
|
Ilari
| RichiH: No, you don't need to keep the tag after you branch from it (unless you want to). | 21:39 |
|
| In Git, even single branches can have nonlinear time. | 21:39 |
|
| And the set of commits that belongs to some branch is always transitively (following parent pointers) closed. | 21:40 |
| ← pencilo left | 21:41 |
| ← chris2 left | 21:42 |
| ← netoman left | 21:42 |
|
Ilari
| In fact, the defintion of set of commits on branch is: The smallest set that 1) Contains commit designated by branch pointer and 2) is transitively (following parent pointers) closed. | 21:42 |
| ← kRutOn left | 21:43 |
| ← c0sin left | 21:44 |
|
RichiH
| Ilari: so i can basically pull the rug from under a branches' feet and it doesn't care in the least | 21:45 |
| ← vbabiy_ left | 21:45 |
| → vbabiy joined | 21:45 |
|
Ilari
| RichiH: In fact, 'parent of branch' is only recorded in config file and pretty much the only command that cares is 'git pull' (when run without arguments). | 21:47 |
| ← xjjk left | 21:47 |
|
RichiH
| makes sense | 21:47 |
|
| RichiH has to say that the underlying design of git appears to be extremely clean | 21:48 |
| ← orkim left | 21:48 |
| ← jfontan left | 21:48 |
| ← aspotashev left | 21:49 |
|
Ilari
| RichiH: Yes it is. Git for instance only has four types of objects: Blobs store file contents, trees build them into directories, commits bind them into history and tags introduce trust into the system. | 21:49 |
| → jfontan joined | 21:50 |
|
RichiH
| tags as in the tags i can set myself? | 21:50 |
| ← boto left | 21:50 |
|
Ilari
| RichiH: 'tags' as in tag objects ('git tag -a' or 'git tag -s' creates those). | 21:50 |
|
RichiH
| Ilari: so each commit gets one tag by default? | 21:52 |
|
| the commit info tag, so to speak | 21:52 |
|
Ilari
| RichiH: Nope. Tag objects have to be explicitly created. Maybe look at 'git for-each-ref' output and see entries with type 'tag'. | 21:53 |
|
| RichiH: Ordinary branches always have type 'commit' in that output. | 21:53 |
|
drizzd
| Ilari: what you said above could be the slogan for a git ad | 21:54 |
| ← PhilK left | 21:56 |
|
Ilari
| RichiH: 'tags' can have both 'commit' for lightweight tag or 'tag' (the ID printed is then tag ID) for annotated/signed tag as type... | 21:56 |
| ← nibbo left | 21:59 |
| ← unreal_ left | 22:00 |
|
RichiH
| Ilari: k, thanks :) | 22:01 |
| → unreal joined | 22:01 |
|
Ilari
| RichiH: Basically, tag objects store freeform message about what is tagged (just like commit messages contain freeform description of the commit). | 22:03 |
| → pkern joined | 22:04 |
|
pkern
| Could I filter some subtree from a git repo, even if I have to rewrite all the history for it? | 22:04 |
| → JonathanT joined | 22:05 |
| → nibbo joined | 22:05 |
|
RichiH
| pkern: afaik, partial checkouts are not supported | 22:05 |
| ← synchris left | 22:05 |
|
pkern
| RichiH: I want to get rid of it in the repo. | 22:06 |
| ← loincloth left | 22:08 |
| ← LiamH left | 22:08 |
| → loincloth joined | 22:09 |
| → flaguy joined | 22:10 |
| ← ceej left | 22:11 |
| ← loincloth left | 22:15 |
| ← kumbayo left | 22:16 |
| → sanity_ joined | 22:17 |
| ← bobmcw left | 22:17 |
| ← ReinH left | 22:18 |
| ← rtomayko left | 22:18 |
| ← petteri left | 22:18 |
| → petteri joined | 22:18 |
| → rtomayko joined | 22:18 |
| ← rphillips left | 22:20 |
| → rphillips joined | 22:20 |
| ← MrHeavy left | 22:21 |
| → bobmcw joined | 22:25 |
| ← cmarcelo left | 22:26 |
| ← kyle__ left | 22:28 |
| → metajack joined | 22:28 |
| ← vbabiy left | 22:29 |
| ← up_the_irons left | 22:29 |
| → up_the_irons joined | 22:30 |
| → ceej joined | 22:30 |
| ← ahupp|fb left | 22:30 |
| ← Cacheaway left | 22:31 |
| ← b_jonas left | 22:32 |
| ← ezyang left | 22:32 |
| ← metajack left | 22:33 |
| → ReinH joined | 22:34 |
| ← kennethlove left | 22:35 |
| cbrake → cbrake_away | 22:38 |
| → ahupp|fb joined | 22:39 |
| → alikins_ joined | 22:43 |
| ← alikins left | 22:43 |
| → cops joined | 22:50 |
| ← parasti left | 22:50 |
| ← cops left | 22:50 |
| ← hobodave left | 22:51 |
| ← juanjoc left | 22:52 |
| ← JonathanT left | 22:55 |
| ← jfontan left | 22:55 |
| → xjjk joined | 22:56 |
| → Cacheaway joined | 22:57 |
| ← smtlaissezfaire` left | 23:00 |
| → thiago_home joined | 23:00 |
| ← mosno left | 23:01 |
| ← incidence left | 23:01 |
| ← aknowles left | 23:02 |
| → not-xjjk_ joined | 23:03 |
| ← bantic left | 23:04 |
|
bremner
| pkern: you saw man git-filter-branch ? | 23:04 |
|
Gitbot
| pkern: the git-filter-branch manpage can be found at http://git.or.cz/man/git-filter-branch | 23:04 |
| → parasti joined | 23:06 |
| ← lucsky left | 23:06 |
| → heda joined | 23:07 |
| ← not-xjjk left | 23:07 |
|
mutex
| all of the sudden when I see git diffs | 23:08 |
|
| it is full of lines like the following | 23:09 |
|
heda
| hi all, i want to run a project whereby certain files are provided by a remote git repository, is there a way i can set it up so that i can easily get the latest version of all the remote files but leave the rest of the local files as they were - an svn externals sort of effect | 23:09 |
|
mutex
| ESC[32mif (parse_args(argc, argv, &args) != 0) {ESC[m | 23:09 |
|
| i guess less isn't processing colors ? | 23:09 |
|
thiago_home
| yes | 23:09 |
|
| what's $LESSO ? | 23:09 |
|
| $LESS ? | 23:10 |
|
mutex
| -R -M --shift 5 | 23:10 |
|
| also my .gitconfig says | 23:10 |
|
thiago_home
| the -R says process ANSI colours | 23:10 |
|
mutex
| pager = less -+RSX | 23:11 |
| ← agile left | 23:11 |
|
mutex
| yeah so then why isn't my display rendering them is the question | 23:11 |
| → schacon joined | 23:11 |
|
thiago_home
| and -+R turns it back off | 23:11 |
|
| you need -R | 23:11 |
|
mutex
| oh | 23:11 |
|
| ah ha! | 23:12 |
|
| works now ;-) | 23:12 |
| ← priidu left | 23:13 |
| → bdiego joined | 23:14 |
| → rem7 joined | 23:15 |
| ← xjjk left | 23:15 |
| ← rem7 left | 23:16 |
|
pflanze
| git filter-branch is somehow horribly slow with a little longer history for me. | 23:18 |
|
| It's taking 25 seconds to handle a single commit right now. | 23:19 |
|
| And it's only a few hundred files. | 23:19 |
| → xjjk joined | 23:19 |
|
pflanze
| I want a tool which can take a list of paths that I want to preserve, | 23:20 |
|
| and removes all other paths, and removes commits which don't touch any of the paths I want to keep. | 23:20 |
|
| What do you suggest? | 23:20 |
| ← ibuffy left | 23:21 |
|
thiago_home
| filter-branch should do that quite fast if you use --index-filter | 23:21 |
| ← SyntaxRebel left | 23:22 |
|
thiago_home
| what are you using? | 23:22 |
|
pflanze
| git filter-branch --index-filter 'git ls-files -z | perl -wn -0 -l0 -e '\''BEGIN { open my $in, "<","../_bin_with_renames_" or die; %want=map { chomp; $_=>1} <$in>; close $in or die;} print unless $want{$_}'\'' --commit-filter 'if [ z"$1" = z"$(git rev-parse "$3"^{tree})" ]; then skip_commit "$@"; else git commit-tree "$@"; fi' | 23:25 |
|
| well instead of ../_bin_with_renames_ I'm using an absolute path since it changes cwd. | 23:25 |
|
| It is now at about 2 minutes to treat one commit. | 23:26 |
|
thiago_home
| what process is taking so long CPU time? | 23:26 |
|
| you can see it in top? | 23:26 |
|
pflanze
| git-filter-branch | 23:26 |
|
| 99% cpu | 23:26 |
|
thiago_home
| disk I/O or just CPU? | 23:26 |
|
pflanze
| just cpu | 23:26 |
|
thiago_home
| hmm | 23:26 |
|
| no clue then, sorry | 23:27 |
|
pflanze
| hm strange is that strace -p $pidofgitfilterbranch -f shows: | 23:27 |
|
| rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0 | 23:27 |
|
| rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 | 23:27 |
|
| brk(0xbad000) = 0xbad000 | 23:27 |
|
| brk(0xb2d000) = 0xb2d000 | 23:27 |
|
| brk(0xbad000) = 0xbad000 | 23:27 |
|
| brk(0xb2d000) = 0xb2d000 | 23:27 |
|
| brk(0xbad000) = 0xbad000 | 23:27 |
|
| brk(0xb2d000) = 0xb2d000 | 23:27 |
|
| brk(0xbad000) = 0xbad000 | 23:27 |
|
| brk(0xb2d000) = 0xb2d000 | 23:27 |
|
| in a loop. | 23:27 |
|
| and almost nothing else. | 23:27 |
| ← name left | 23:29 |
|
pflanze
| so it looks like *bash* is using up all cpu. | 23:29 |
|
cehteh
| pflanze: allocating memory for datastructures in a loop | 23:29 |
|
pflanze
| yeah but what datastructure is bash using here? | 23:29 |
|
cehteh
| does it end eventually? | 23:29 |
|
pflanze
| it's still running. | 23:30 |
|
| for 13 minutes now | 23:30 |
|
cehteh
| strange .. how many memory does it consume? .. and if thats bash then it looks fishy | 23:30 |
|
ciaranm
| pflanze: did you forget to disable the swedish chef? | 23:30 |
|
cehteh
| i dont know the filter branch code .. does it use arrays or other fancy bash features? | 23:30 |
|
pflanze
| when it started, it went on processing commits very quickly as I can see the "rm" messages from git rm; now it takes >2' per commit. | 23:31 |
|
| PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND | 23:31 |
|
| 9978 chris 20 0 15072 5316 1132 R 100 0.3 13:15.95 git-filter-bran | 23:31 |
| ← not-xjjk_ left | 23:31 |
|
pflanze
| ciaranm: what's that? | 23:31 |
|
ciaranm
| it's a muppet who says bork bork bork a lot | 23:32 |
|
| it's funny because bork sounds like brk! | 23:32 |
|
pflanze
| aha | 23:32 |
| ← willb left | 23:32 |
|
pflanze
| That repo has 697 commits. | 23:36 |
|
| I mean that's tiny with what other people have right? | 23:36 |
|
| pasky: are you there, do you have an idea? | 23:37 |
| ← lanwin left | 23:38 |
|
pflanze
| btw this is GNU bash, version 3.2.39(1)-release (x86_64-pc-linux-gnu) | 23:38 |
| → aFlag joined | 23:39 |
|
aFlag
| hi. When I try to push something git yields an error and advise me to use [email@hidden.address] | 23:39 |
|
| if I use push like that, it works, but isn't there a way to save that so push always push there? | 23:40 |
|
| instead of trying to push to git://github.com/user/repo.git | 23:40 |
|
pflanze
| you need to configure your remotes correctly | 23:41 |
|
| man git-remote | 23:41 |
|
Gitbot
| pflanze: the git-remote manpage can be found at http://git.or.cz/man/git-remote | 23:41 |
|
pflanze
| and maybe you need some other command; I still usually edit .git/config directly. | 23:41 |
|
| Which is probably not the right thing, but that's why I can't tell you better. | 23:42 |
| ← nud_ left | 23:42 |
|
pflanze
| I'd assume that github has some docs on how to set up pushing, really! | 23:43 |
|
| So go RTFM and then tell me how it works ;) | 23:43 |
|
aFlag
| hm, I'm not really able to access github web site from here, it doesn't work too well on lynx | 23:44 |
|
parasti
| also, #github | 23:44 |
|
pflanze
| aFlag: there are also the "links" and "w3m" console browsers, maybe those work better. | 23:45 |
| ← rolfb left | 23:45 |
| → raalkml joined | 23:46 |
| ← raalkml left | 23:47 |
| ← aroben left | 23:47 |
| → ibuffy joined | 23:47 |
|
pflanze
| pasky: .git-rewrite/map/ contains 278 files right now (I guess that means 419 of my 697 commits still to go, and it's getting slower..) | 23:48 |
| ← xanonus left | 23:48 |
|
pflanze
| pasky: the interesting thing is that these files grew much larger, and: | 23:49 |
|
| chris@novo:~/repo.or.cz/cj-git-perl-tools/.git-rewrite/map$ cat da0053442bc6dfbd6c530e76f75e25a3256148f5|wc -l | 23:49 |
|
| 4800 | 23:49 |
|
| chris@novo:~/repo.or.cz/cj-git-perl-tools/.git-rewrite/map$ cat da0053442bc6dfbd6c530e76f75e25a3256148f5|sort -u|wc -l | 23:49 |
|
| 1 | 23:49 |
| → aspotashev joined | 23:49 |
|
pflanze
| So I guess bash is searching through these lists of identical lines? | 23:49 |
| ← sdboyer left | 23:49 |
| → sdboyer joined | 23:50 |
|
pflanze
| heh actually: chris@novo:~/repo.or.cz/cj-git-perl-tools/.git-rewrite/map$ cat *|sort -u|wc -l | 23:50 |
|
| 1 | 23:50 |
| ← naeu left | 23:50 |
| → gilimanjaro joined | 23:51 |
|
pflanze
| nadim: are you there? I'm pondering writing a Perl based filter-branch.. | 23:52 |
|
| What do you think? (I guess, using the gitweb gsoc code) | 23:53 |
|
| I mean, by the time that bash finishes here I've probably done it :) | 23:54 |
|
| PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND | 23:55 |
|
| 9978 chris 20 0 15584 5972 1132 R 100 0.3 35:34.58 git-filter-bran | 23:55 |
| ← ahupp|fb left | 23:55 |
| → _Vi joined | 23:56 |
| ← bobmcw left | 23:57 |
| ← Sigma left | 23:57 |
| ← alley_cat left | 23:57 |
|
pflanze
| btw, filter-branch from git version 1.6.0.4 | 23:58 |
| ← gilimanjaro left | 23:59 |
| → gilimanjaro joined | 23:59 |