IRCloggy #git 2008-12-05

Logs Search ←Prev date Next date→ Channels Documentation

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

2008-12-05

ibuffy joined00:01
offby1 doener: exactly -- if there's nothing to stash, Something Bad happens.00:01
lemme see the current version00:01
hmm, I'm sure I whined about that more recently than May00:02
doener no, with "&&" it still fails00:02
stash does not set an exit code != 0 when there's nothing to stash00:02
bbuss left00:03
offby1 yup00:03
nor, I suspect, should it00:03
doener right00:03
offby1 But it'd be nice if it emitted predictable output00:03
maybe it does00:03
anyway.00:03
now we know.00:03
doener well, "git diff --quiet HEAD && git stash && git stash apply" should do00:04
gitte offby1: if it were plumbing, yes, I'd like it to have predictable output.00:04
LiamH left00:04
doener or rather, "(git diff --quiet || git diff --cached) && git stash ..."00:04
gargh... the second diff should also have --quiet00:04
jackdempsey left00:05
doener and it needs to be " || git stash"00:05
doener should just stop trying00:05
bbuss joined00:06
cilly left00:06
doener ok, "git diff --quiet && git diff --quiet --cached || (git stash && git stash apply)00:08
that should do...00:08
kuadrosx left00:09
edwardam left00:12
willb left00:12
offby1 doener: ooh, clever00:13
hidek_ joined00: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 that00:15
doener thanks!00:15
etherael left00:16
gilimanjaro left00:17
ben_h joined00:18
lolage0 left00:20
geckosen1tor joined00:23
Flathead joined00:23
selckin joined00:25
gitte left00:26
sgarza joined00:27
sgarza left00:28
ankit9 left00:28
ankit9 joined00:28
lresende left00:29
branstrom left00:31
ankit9 left00:37
bdiego left00:37
ankit9 joined00:37
branstrom joined00:37
jstad_ joined00:38
drewr left00:39
aroben left00:41
gretch joined00:44
ph^ left00:45
__ash__ left00:45
Yuuhi left00:48
edwardam joined00:49
univate joined00:50
supercali left00:51
supercali joined00:52
branstrom left00:52
qrush joined00:54
mwmw|out00:55
hobodave left00:55
Jippi joined00:55
hobodave joined00: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 it00:57
"git branch" is purely local00:57
IIRC "git push" is the only command that modifies a different repo than the one you're in00:57
markelikalderon left00: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 left00:58
metajack_ joined00: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 it00:59
ben_h ahh right00:59
Jippi doener: is it possible to retrive the tree again once deleted?00:59
*branch00:59
doener ben_h: the full refspec format is <committish>:<ref>00:59
ben_h hmm00: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:branch01:00
doener ben_h: same for a tag, but with refs/tags01:00
ben_h ahhh right01:00
doener the default refspec for push is just :01:00
ben_h hmm that explains a lot01: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__ joined01:00
miggilinme joined01:01
pcapriotti left01: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 it01:01
is there something I need to do to add the nre branch?01:01
new*01:01
Pieter miggilinme: git branch -r01:02
cbreak if you pull from a branch01:02
it usually merges into the current branch01: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 commit01:02
miggilinme Pieter: still not showing01:02
cbreak, that's odd, because I don't see the new files01:02
altfive joined01: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 joined01:03
elmex left01:03
miggilinme git pull server experimental01: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 dangling01:04
lukedal joined01:04
miggilinme doener: if you say so, I can check again to make sure it wasn't merged, I could be wrong01:04
doener: ah, there it is01:04
cbreak do a git log01:04
miggilinme that wasn't what I had hoped for however01:04
cbreak it should show01:04
doener miggilinme: you can reset back to before the merge01: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 at01: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 gone01:05
doener miggilinme: likely <your_branch>@{1} (the second entry} is the commit where you have been before the merge01: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 useless01:07
I'm a little confused by the sudden flow of responses, not sure what I should do01:07
ben_h miggilinme: panic01: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 merge01:07
miggilinme should I reset to the initial commit?01:07
ok01:08
doener goes to order THHGTG for ben_h01:08
ben_h lol01:08
miggilinme ok, great, back to the head01:08
and then create the experimental branch, switch to it and then pull?01:08
parasti left01:08
doener miggilinme: no :-)01:08
miggilinme: first, answer my question about your usage pattern for the other repo01:09
zerok left01:09
supercali left01:09
miggilinme what then?01:09
doener miggilinme: is that a repo from which you intend to fetch "regularly"?01:09
albalbertito01:09
miggilinme well yes, I imagine so01:09
it's my project :)01:09
withanx left01:10
doener miggilinme: then you'll want to have a "remote" for that repository01:10
miggilinme: git remote add <name> <url-to-repo>01:10
miggilinme ejsy01:10
erm, sorry01:10
what's that for01: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 url01:10
miggilinme: the other is that the remote gets a default "fetch refspec"01:11
miggilinme in that case I think I do have that01:11
doener you already have a remote for that repo?01:11
miggilinme and a fetch refspec is?01:11
yes01:11
ben_h I was thinking about the implementation of git's hashing the other night. Anyone here familiar with it?01:11
xaiki joined01: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 joined01:12
doener "git fetch" (which does the fetch part of "git pull") takes a remote repo and some refspecs as arguments01:12
lukedal left01:12
doener miggilinme: the refspec tells it what to fetch and where to store it01: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 looks01: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>/experimental01:15
miggilinme so what's the difference between this and pull?01:15
I mean, it gets the branches I guess01:15
univate left01:15
doener pull is fetch + merge01:15
miggilinme but more technically01:15
ah, ok01:16
so this is no merge01:16
doener so pull is just a shorthand, pure convenience when you often just merge a branch01:16
miggilinme got it01:16
doener and fetch just gets the stuff and stores it somewhere01: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 branch01:16
doener the -r means that "git branch" lists the remote tracking branches01:16
__ash__ left01:16
miggilinme yes, I see the branches listed01:17
ok, I guess I can figure from here then01:17
thanks01:17
doener ok, now, you can use those remote tracking branches "as usual". You can for example do "gitk <servername>/experimental"01:17
markelikalderon joined01:17
doener or "git log master..<servername>/experimental" to see what the remote branch has, that your master branch doesn't01:18
miggilinme alright, thanks01:18
doener you're welcome01:18
geckosen1tor left01:18
univate joined01:19
vbabiy joined01:20
cgardner left01:22
geckosenator joined01:23
gretch joined01:26
miggilinme left01:27
ebzzry joined01:28
agenteo joined01:30
xaiki left01:31
scsiraider left01:33
scsiraider joined01:34
hidek_ left01:34
ben_h flazz: yep - http://gems.github.com/01:35
bah wrong chan01:35
flazz ben_h: thanks01:36
ben_h :)01:36
edwardam left01:36
edwardam_ joined01:36
doener ben_h: for a second, I thought you were psychic or something ;-)01:36
ben_h doener: i am, but that's unrelated01:37
bobmcw joined01: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_Streetmentioner01: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 afraid01: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 describe01:39
pfharlock how does one do the equivalent of bzr missing in git?01:39
ben_h not sure sorry flaz01: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 other01:40
doener pfharlock: git log <branch1>...<branch2>01:40
flazz doener: thanks01:40
ebzzry left01: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 comes01:41
ebzzry joined01:41
doener pfharlock: especially nice with gitk01:41
pfharlock cool, thankyou very much, I'll give it a test drive01: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 A01:42
sdboyer_ joined01: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 left01: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 on01:44
univate joined01: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 possible01:45
offby1 sure01:45
doener albertito: fetch in the bare repo01:45
albertito I obviously cloned from k.o, worked great01:45
Pushed once, worked great. But the fetch seems to make no difference01: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 tell01: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.o01:47
doener: no01:47
doener that would store stuff in FETCH_HEAD, not sure if is considered for pushes to determine what needs to be pushed01:48
albertito doener: I thought it could make a difference, if it didn't took FETCH_HEAD into account. Should I?01:48
harinath joined01:48
albertito doener: =)01:48
doener: I'll try the remote01:48
PhilK joined01: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 irrelevant01: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 way01:50
PhilK left01:51
albertito offby1: maybe it needs some tip where to start looking for things01:51
doener offby1: you need something efficient to figure out which objects the remote has01:51
offby1: I guess it just iterates the branches/tags01:51
offby1 hmm01:51
bummer01:51
doener looking at the code right now01: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 instead01:52
offby1 well, as you can see, _I_ think it should consider _all_ objects01: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 url01:53
doener albertito: you can change the "fetch = " line in the config for that remote01: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_ left01:53
ebzzry_ joined01:54
blithe left01: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 mind01:54
harinath left01:54
perezd88 joined01:55
harinath joined01:55
selckin left01:55
blithe joined01: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 refs01:56
deskin though that doesn't feel quite right; some refs are could be duplicates, but maybe it really just ignores the overhead01:57
harinath left01:57
albertito deskin: aren't those non-trivial to determine?01:57
sdboyer left01:57
albertito bbiam01:57
deskin probably :/ I'm trying to think of a sane way01:57
harinath joined01:57
deskin which doesn't involve looking at all history01:57
doener is still trying to find out what it actually does now01: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 then01: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 magic02:00
Zimm left02:01
doener ah, thanks! Been looking at the wrong end02:01
offby1 that's what my doctor said02:02
*rimshot*02:02
ben_h lol02:02
jast http://instantrimshot.com/02:02
threeve joined02:03
deskin anyone know thomas's IRC handle? IIRC he's been on here but I don't know if he frequents #git02:03
joydivider left02:04
jstad left02:04
jstad_ left02:04
scsiraider left02:05
flazz is it safe to set spec.version = `git describe` ?02:06
scsiraider joined02:08
ebzzry left02:08
softdrink left02:08
ToxicFrog`ToxicFrog02:09
softdrink joined02:09
ankit9 left02:10
harinath left02:13
harinath joined02:13
unreal left02:14
ahupp|fb left02:15
unreal joined02:15
ahupp|fb joined02:16
sdboyer-laptop joined02:18
softdrink left02:19
bobmcw left02:20
stephens left02:21
carllerche left02:21
Richo99 joined02:23
ciaran left02:23
Richo99 Hi, I want to move a commit on main to a branch, how do I do that?02:23
_VVSiz_ joined02:24
perezd88 left02:25
perezd88 joined02:25
mw|out left02:25
lordpil joined02:26
markelikalderon left02:27
doener deskin: ok, out of boredom, I did some mail/irc log search. Seems that his handle is "charon"02:27
ezyang joined02:27
deskin ah, that sounds rigth02:28
doener deskin: http://colabti.org/irclogger/irclogger_log/git?date=2008-08-29,Fri#l89002:28
deskin not on now unfortunately; though I wouldn't expect it02:28
doener that's how I found out :-)02:28
deskin nice02:29
Flathead left02:29
deskin /whois for the win; but memory for the lose in my case02:29
Flathead joined02:30
deskin needs to write that IRC bot that learns people's nick/ realname mappings so deskin doesn't have to remember02:31
ahupp|fb_ joined02:32
lordpil- left02:39
ceej joined02:39
ceej hey all, whats the command to roll back one as the last git update just messed things up02:40
ijcd left02:40
Tv joined02:40
VVSiz_ left02:41
geckosenator ceej: revert02:41
ceej do i need to enter a parent number though?02:42
_kukks_kukks02: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 server02:44
and now it's erroing out, is there away to go back to the previous state?02:44
cbrakecbrake_away02: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 left02:45
doener (both commands assuming that you pulled into the master branch)02:45
ceej ok, thank you02:45
that didn't appear to go back one02:46
still the same as master02:46
ahupp|fb left02:46
doener which one didn't go back?02:46
flaguy left02:46
neuro_damage joined02:47
bbuss left02:47
neuro_damage how do I have the same repo hosted at multiple different locations02: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 ye02:48
ebzzry_ left02:48
gambler left02:48
doener well, that should have resetted master to before the merge and also made the working tree equal to the tree for that commit02:49
ceej: "git branch" actually says you have master checked out right now, right?02:49
ceej yes02:50
it gives me messages like HEAD is now at c1a4266 deleted files that are not suposed to be here.02:50
neuro_damage left02:50
doener so master was reset to the commit02: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 state02:51
most likely, it's the first one _after_ the first "pull : ..." line02:52
ben_h qrush: lolol02:52
oh god damn it02:52
qrush: lolol02:52
sgrimm left02:52
ben_h apologises02:52
doener and then use that entry with "git reset --hard master@{n}", replacing n with the right number02:52
ceej doener:your correct but it doesn't seem to be putting the files back to the privous state02:53
qrush ben_h: what02:53
ben_h qrush: #github, i failed to select the right chan02: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 joined02:55
doener ok, 4am, off to bed... good luck :-)02:55
ceej doener: thank you :)02:56
kukks left02:56
albertito doener, offby1: I'm off to bed, thanks a lot!02:58
unreal left03:00
offby1 yay03:01
unreal joined03:01
qrush_ joined03:02
Tv left03:03
unreal left03:04
bts- left03:05
unreal joined03:06
quoin joined03:07
brett_h left03:18
spearce left03:20
vbabiy left03:22
ahupp|fb_ left03:23
loincloth joined03:24
EmilMedve joined03:27
univate left03:32
unreal left03:34
unreal joined03:35
pygi left03:38
Mario__ joined03:38
ben_h_ joined03:38
imyousuf joined03:39
rtomayko left03:41
nice_burger joined03:42
agile left03:43
agile joined03:46
nothingHappens_ joined03:46
ben_h left03:46
gambler joined03:48
ceej_ joined03:48
EiNZTEiN joined03:48
__ash__ joined03:55
pfharlock left03:56
ceej left03:56
offby1` joined03:58
schlort left04:02
schlort_ joined04:02
univate joined04:07
Tv1 left04:11
Modius left04:11
offby1 left04:13
IRSeekBot joined04:15
qrush_ left04:15
offby1`offby104:20
schlort_ left04:20
qrush left04:21
nikolasco joined04:23
jonshea joined04:24
ahupp|fb joined04:25
k0001 left04:25
ebzzry joined04:26
schlort joined04:28
muthu_ joined04:29
scientes left04:33
fhobia joined04:36
ben_h joined04:38
nothingHappens_ left04:40
dreiss left04:41
ben_h- joined04:41
girishr joined04:42
ferdy left04:42
sgrimm joined04:44
Tv joined04:46
carllerche joined04:48
ferdy joined04:51
Flathead left04:52
murphl left04:52
jackdempsey joined04:53
qrush joined04:54
cedricv joined04:55
Bass10 left05:03
mithro joined05:03
cgardner joined05:08
cgardner left05:09
cgardner joined05:09
tjafk2 joined05:10
sdboyer-laptop left05:12
tpiep joined05:14
girishr_ joined05:14
murphl joined05:16
girishr left05:16
crab left05:17
Ryan52 offby1: what did I do wrong here? http://slexy.org/view/s20n55kjaA05:22
bartman left05:22
offby1 hole on05:23
Ryan52 offby1, I didn't actually test what you told me the other day :p05:23
offby1 that's OK, I have no recollection of what I told you the other day05:23
and am too lazy to look in my logs05:23
tpiep left05:23
offby1 ah, that's easy.05:23
you forgot to prepend the directory name: f605:24
git cat-file -t _f6_53bbeb8482959d6131424204e57c9b75bf9b1b05: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 :p05:24
hrm. fatal: Not a valid object name _f6_53bbeb8482959d6131424204e57c9b75bf9b1b05:25
offby1 DUDE! Isn't it OBVIOUS that SHA1s are always 40 characters?05:25
I mean REALLY05:25
Ryan52: the _ were just for emphasis!05:25
Ryan52 ohhhh.05:25
hehe :p05:25
offby1 whistles innocently05:25
Mario__ left05:25
Ryan52 you think that I was actually smart enough to count the number of characters? :p05: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 left05:26
offby1 git show f653bbeb8482959d6131424204e57c9b75bf9b1b > wot-is-it05:26
loinclot_ joined05:26
offby1 less wot-is-it05: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 left05:28
offby1 file wot-is-it05: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 was05: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 of05:29
harinath joined05:30
not-xjjk joined05:30
Ryan52 hrm. okay, I guess that's fairly easily scriptable...thanks.05:31
zwu joined05:31
xjjk left05:31
joshdavey joined05:31
loincloth left05:31
sdboyer_ left05:34
sdboyer_ joined05:35
sdboyer_sdboyer05:35
Ryan52 filter-branches05: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-oriented05:37
that's the sort of question that could be easily resolved with a simple experiment, I'd think05:37
feindbild no ... sorry ... I meant as opposed to diff lines05:37
offby1 now I _really_ don't understand.05:37
feindbild :/05:39
ok, take this as example pseudo-diff: http://pastebin.ca/127662405:40
context joined05: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 left05:41
tpope context: it's possible. it's easier to just disable them on import05:42
offby1 feindbild: ok, I've looked at that, but ... it doesn't help me understand your question05: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 joined05:42
offby1 really? git log -S'this.getById' doesn't find that commit?05:42
hmm05:42
Marmouset joined05:44
girishr_ left05:44
offby1 interesting05:44
I think I'm starting to understand feindbild's question05: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 line05: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 yes05:48
offby1 you'll probably have to get each diff separately, and grep 'em :-|05:48
feindbild :D05:48
yay!05:48
offby1 maybe --pickkaxe-regexp works differently ... tried it?05:48
feindbild not yet ^^05:49
Rivelli joined05:49
offby1 don't think it'll help05:49
sounds like a question for a real expert.05:50
hobodave_ joined05:51
AaronLBorg joined05:51
__ash__ left05: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 himself05: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 horn05:53
AaronLBorg i have a site on a remote server05:53
offby1 mm hm05:53
AaronLBorg [air horn snaps him outuvit]05:54
offby1 assumes the psychoanalyst pose, behind the couch, with a pad and pen05:54
offby1 do go on.05:54
AaronLBorg it is one of many sites05:54
and all of the other sites have git installed05:54
i would like to install it in MY site now05:54
and I need to know the best way to do that *server-wise*05:55
offby1 scratches head05:55
priidu joined05: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 shell05:55
offby1 please, let's keep the focus on you.05:55
AaronLBorg rather, i have access to a shell05:55
yes......after all...it is my session05:56
offby1 turns his family portrait over, face-down05: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, doc05:57
offby1 seriously, I'm not sure what the problem is.05:57
ezyang left05: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 is05:58
offby1 that's up to you.05:58
ezyang joined05: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 similar05: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 thinking05:58
offby1 so ... let me get this straight05: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.com05:59
offby1 Or at least, close variants of the same site05:59
sure, ok05: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 oh05:59
then05:59
what?05:59
AaronLBorg this is a server that has many different sites on it05:59
context left06:00
offby1 oK06: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 sure06:00
AaronLBorg yes, but i work at the company ;-)06:00
never had to install git myself06:00
offby1 ok, so you're the hosting guy06:00
AaronLBorg i'm a dev06:01
offby1 well, _installing_ git is easy06:01
AaronLBorg hangs head in shame06:01
girishr_ joined06: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 source06: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 common06:02
are we talkin about the same thing?06:02
AaronLBorg i think so06:02
offby1 "What we have here is a ... failure to communicate"06:02
AaronLBorg no, i think it's going good06:02
getting me thinking anyway06: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_ left06:03
AaronLBorg if i want to clone....does it matter where it is?06:03
offby1 nothin' wrong with that06:03
it surely doesn't matter where the "git" binary is in order for you to use it.06:03
madewokherd left06:03
AaronLBorg that's what i needed to know, amigo!06:03
threeve left06: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 joined06:04
AaronLBorg thank you!06:04
offby1 may I ask what kind of development you do?06:04
hobodave left06:07
hobodave_ left06:12
mithro left06:12
reithi joined06:13
offby1 *gap*06:14
*gasp*06:14
Tukwila, WA?06:14
Why that's ... just down the street06: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 left06:17
japhb joined06:17
AaronLBorg what's been going on behind my back!06:18
?06:18
clear this line out...06:18
there06:18
qrush left06:18
offby1 I've /whois'd you down to the block06:18
AaronLBorg man.....06:18
is nothing sacred06:18
?06:18
Ryan52 19:22 < robin> git verify -v <pack> can list all objects in a pack06: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 hyphen06:20
git verify-pack06:20
Ryan52 okay.06:21
thanks06:21
ahupp|fb left06:24
vbabiy joined06:25
vbabiy left06:28
robinr Ryan52: oops, git verify-pack06:30
crab joined06: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 left06:38
carllerche_ joined06: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 left06: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 joined06:41
Tv Ryan52: you could rev-list to get all the commits, then run ls-tree -r on each one, grepping for your blob06:41
Ryan52: prune will only remove objects that are old enough06:41
hobodave joined06:42
Ryan52 so I want to set gc.reflogExpireUnreachable to 0?06:42
agenteo left06:42
Tv Ryan52: well you can do that on the command line.. that'd be for git reflog expire06:43
Ryan52: and *then* the gc thingie can kick in, and it has it's own age minimum06:43
hobodave left06:44
Ryan52 so how do I do this correctly?06:44
Tv oh you might need gc.reflogexpire, not just expireunreachable06: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 it06:45
Ryan52 okay.06:45
Tv 2) git reflog expire --expire=now --expire-unreachable=now --all06:46
Ryan52 okay.06:46
Tv 3) git prune --expire=now06:46
that should do it06:46
Ryan52 hrm. should I run "git repack -A" before step 3?06:47
cause that did almost nothing.06:47
Tv yeah06:47
you should06:47
Ryan52 okay, thanks!06:47
Tv Ryan52: afterwards you should have nothing in .git/objects/??06:48
oh and repack -A -d06: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-packed06:49
Voker57 joined06: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 joined06: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 left06: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 tutorial06: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 faq06: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 github06:58
harinath left06:58
Tv moccuo: from that same repository? or before the clone?06:59
Ryan52 oh, found it :p06: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 :p07: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 lol07:00
offby1 makes a sweeping gesture towards his .emacs, which stretches to the horizon07: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 lines07:01
moccuo offby1: well i just checked github and it appears that the push i did didnt go throught fro some reason07: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 horizon07:02
offby1 aah.07:02
ben_h- left07:02
moccuo oooh no. i did something bad07:02
:(07:03
offby1 I heard a baby scream. Was that you?07:03
murderer07:03
moccuo haha07: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. ugggh07:04
reithi left07:05
moccuo this is my first time deploying rails, hehe07:05
reithi joined07:06
up_the_irons left07:07
up_the_irons joined07:07
ben_h_ left07:08
Arafangion left07:08
doener left07:08
doener joined07:09
ben_h left07: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 joined07:12
sverrej left07:13
murphl left07:15
karmi left07:17
Ryan52 now it's down to 6 megabytes!!!! :)07:19
esden left07:22
Weaselweb joined07:33
bentob0x joined07:38
ashleyw joined07:40
aspotashev left07:41
xjjk joined07:42
cliffstah left07:44
cliffstah joined07:44
ijcd joined07:46
ijcd left07:47
Arachnid left07:47
PerlJam left07:47
PerlJam joined07:47
Arachnid joined07:48
thijso joined07:48
reel_ joined07:50
bobesponja left07:51
tjogin joined07:53
not-xjjk left07:53
doiuf joined07:54
quoin- joined07:54
nice_burger left07:55
ben_h joined07:55
japhb left07:56
sgrimm left07:57
japhb joined07:58
ben_h left08:01
ben_h joined08:03
ironfroggy_ left08:04
ezyang left08:04
ben_h left08:05
harinath joined08:09
jmesnil joined08:10
robinr left08:10
quoin left08:12
Richo99 left08:12
naeu joined08:14
mithro joined08:17
mcella joined08:18
jackdempsey left08:19
altfive left08:20
karmi joined08:21
zerok joined08:24
naeu left08:24
gilimanjaro joined08:26
girishr_ left08:27
girishr_ joined08:27
JonathanT joined08:29
lucsky joined08:31
lucsky 'morning08: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 HEAD08:39
anybody know how I can tell it to add -f to that? :p08:39
git-rebase has no -f..08:39
Ryan52 reads teh source code08:40
Ryan52 hacks teh source code :(08:41
solydzajs joined08:41
drizzd Ryan52: if you have an untracked file, you obviously have a dirty working directory08:42
git will not allow you to randomly overwrite that with any command08:42
elmex joined08:42
drizzd so either move the file out of the way, or add and commit it08: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_ joined08:44
Ryan52 oh, crap, but I did have another untracked working tree file...not the one it was erroring about, tho.08:45
ibuffy left08:45
Ryan52 hates bugs, especially when he's too stupid to fix them :p08:45
Ryan52 another == a real one :)08:45
tango_ left08:46
ibuffy joined08:46
naeu joined08:47
charon joined08:48
gretch left08:49
sverrej joined08:49
mithro left08:50
radarek joined08:52
carllerche_ left08: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 left08: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 --follow08:55
Ryan52 oooooooooo....that's a bug :p08: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 left08:57
Ryan52 whatever. I'll get over it. :p08:57
ankit9 joined08:58
Ryan52 sadly svn handles this right...08:59
Ryan52 gets over it and moves on08:59
Voker57 svn doea not have real branches09:00
Ryan52 I know. that's why I'm moving to git :)09:00
drizzd left09:03
bronson left09:04
rtomayko joined09:08
ankit9 left09:08
naeu left09:08
ankit9 joined09:09
xjjk left09:10
univate left09:14
xjjk joined09:14
tjogintjogin|away09:16
ibuffy left09:17
ibuffy joined09:17
tango_ joined09:20
markelikalderon joined09:23
chalky left09:23
twiinz joined09:28
twiinz Hi there09:28
univate joined09:28
hurikhan|Work joined09: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 hehe09:30
gilimanjaro left09:30
tjogin|awaytjogin09:33
markelikalderon left09:38
ankit9 left09:40
nud joined09:40
ankit9 joined09:41
synchris left09:42
ceyusa joined09:43
synchris joined09:43
perezd88 left09:44
Marmouset left09:47
pcapriotti joined09:50
mjc left09:51
drizzd_ left09:54
moccuo left09:56
ceej_ left09:58
chalky joined10:00
feindbild left10:03
joevandyk joined10:04
vaskaren joined10:05
ia left10:07
joshdavey left10:09
reel_ left10:15
muthu_ left10:17
reel_ joined10:17
reel__ joined10:17
reel__ left10:18
ia joined10:23
fhobia left10:25
univate left10:25
univate joined10:31
davik joined10:32
eddyp joined10:33
m3y3ring joined10:36
m3y3ring left10:37
m3y3ring joined10:37
ankit9 left10:40
synchris left10:40
ankit9 joined10:40
synchris joined10:40
jfontan joined10:48
univate left10:49
univate joined10:50
|kukks| joined10:51
bartocc joined10:56
sping_work joined10:59
sping_work hello10:59
vmiklos left11:02
vmiklos joined11:02
sping_work left11:05
sping_work joined11:07
sping_work Hello! Is there a way to specify a default remote for push and pull other than origin?11:08
rtomayko left11:08
not-xjjk joined11:10
aspotashev joined11:11
xlq joined11: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 left11:19
lorandi joined11:19
DrNick xlq: git commit --amend11:19
xlq oh right11:20
xjjk left11:21
kanru left11:23
Angel2009 joined11:23
Angel2009 Buenos dias11:23
Angel2009 left11:24
kanru joined11:27
xjjk joined11:28
ceyusa left11:31
metajack_ left11:34
tzafrir_laptop joined11:36
tzafrir_laptop how can I add a git submodule from the directory ../ ?11:36
ceyusa joined11:36
tzafrir_laptop I have two local repositories that were made with git-svn11:37
One of them is an external of the other11:37
not-xjjk left11:39
grahal joined11:39
tzafrir_laptop wow, working with submodules to replicate svn:externals is so much work11:41
I can't see myself writing simple instructions to explain someone else how to do that11:41
asdfiest joined11:42
vaskaren left11:42
ebzzry left11:44
ebzzry joined11:45
davik left11:49
dancor left11:49
not-xjjk joined11:51
lroar joined11: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 left11:57
joshdavey joined11:57
scientes joined11:57
tzafrir_laptop uses a symlink instead :-(11:59
xjjk left12:02
Gitzilla left12:07
telmich lroar: maybe use git diff $(git diff --name-only | grep -v your file)12:07
Gitzilla joined12:10
temoto joined12: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 left12:14
temoto more precisely i want to import one repo into another commit-by-commit.12:14
so repo2 will become subdir of repo112:14
LotR left12:16
LotR joined12:16
cbrake_awaycbrake12:19
simmerz joined12:19
asodm joined12: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 joined12:22
naeu joined12:22
kyle___ joined12:24
kyle___ i keep getting could not find any SCM named `git'12:24
when doing cap deploy:check12:24
but i know i have git installed12: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___ yes12:25
temoto kyle___, nice thing?12:25
twiinz left12:25
kyle___ i don't know, i'm a n00b12:26
temoto k :)12:26
kyle___ what do you mean git-core on ubuntu12: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 times12: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 joined12:34
knobo Did nobody have issuses with magic keywords like $Id$ from rcs/cvs/svn?12:36
LotR left12: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_ joined12: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 left12:38
doener (per file though IIRC, so if "string" moved from file A to file B, that would be shown)12:38
eddyp left12:39
temoto kyle___, of course they could be and most probaly are different.12:39
Ryback_ joined12:39
d0k joined12:42
univate left12:42
gitte joined12:42
LotR joined12:45
asodm doener: perfect. thanks!12:47
netoman joined12:47
asodm left12:48
_Vi joined12:51
ashleyw left12: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/4475012:54
EmilMedve left12:54
Pieter knobo: see man git-attributes12:54
oh12:55
man gitattributes12:55
Gitbot Pieter: the gitattributes manpage can be found at http://git.or.cz/man/gitattributes12:55
xjjk joined12:56
lukedal joined12:58
knobo thanx. Is it possible to customize the indent option some how?13:00
_Vi left13:00
PhilK joined13:00
_Vi joined13:00
univate joined13:01
d0k_ joined13:03
bobmcw joined13:04
jmesnil joined13:08
awarde left13:09
Voker57 left13:09
Voker57 joined13:09
snitko joined13:11
not-xjjk left13:12
snitko hi, how do I get a remote branch to the local machine? just can't find that simple thing in google13:12
d0k left13:12
doener snitko: git fetch, if you want to repeatedly fetch from that repo, add a remote for it13: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 xxx13:15
doener Maybe you're just missing the concept of remote tracking branches?13:15
vaskaren joined13: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 left13: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 right13:17
temoto doener, if you're going to explain.13:18
xjjk joined13: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 xxx13: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 branch13:19
xlq i.e. to save space13:19
doener xlq: if you clone locally, git uses hardlinks13:20
xlq oh right, didn't notice :D13:20
snitko doener: ok, that I got.13:20
cmarcelo joined13:20
temoto oh well, i don't know then... git branch xxx ; git checkout xxx ; git pull remote xxx13:20
doener xlq: you can also use alternates and something else I don't remember, see man git-clone13:20
Gitbot xlq: the git-clone manpage can be found at http://git.or.cz/man/git-clone13:20
doener xlq: and finally, there's a git-new-workdir script somewhere in contrib/13:20
quoin- left13: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 manpage13:21
temoto I used git-clone with hardlinks and it was very fine experience. Quite no problems. there is --no-hardlinks switch also13: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 left13:22
doener snitko: now, you can basically use those remote tracking branches like any other ref.13:22
xlq O_o ok thans doener13: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 have13:22
snitko: in the same way, you can use the remote tracking branch to specify a starting point for a branch you create13:22
snitko: git branch xxx origin/xxx13:23
snitko: that creates a local branch called xxx that starts at the same commit as origin/xxx13: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 instead13: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 commands13:24
snitko: that is, it creates a xxx branch and checks it out13:25
Zimm joined13: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 left13:26
univate joined13: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 branches13: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 fetch13:27
asn joined13: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 clean13:29
asn: git isn't very proud of deleting stuff it cannot restore13:29
jonaskoelker left13:29
doener so there's an explicit command for that13:29
xlq ;)13:29
asn I see!13:30
thanks :)13:30
bentob0x left13: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 there13:31
timonator joined13:31
alb joined13:32
timonator how does the git community justify the lack of metadata storage like svns properties?13:32
asn doener: thanks, again13:32
name joined13:32
lamont left13:33
jonaskoelker joined13:33
lamont joined13:35
eMBee timonator: to keep it simple?13:36
timonator hm, not really satisfying13: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 so13:36
bartman joined13:37
__name__ joined13:37
name left13:37
LotR left13:37
__name__name13:38
_Vi left13: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 task13:39
timonator mxey: "the domain name alone disqualifies clicking the url" he said13:39
because it hints at fanboyism13: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 joined13:41
spb vim is the only IDE you need13:41
and that has perfectly decent git support13:41
timonator not to everyone.13:41
mxey For Emacs there is magit.13:41
timonator he uses eclipse for his massive java stuff13:42
mxey There is some Git stuff for Eclipse.13:42
timonator yes, it's very, very lacking13:42
mxey I was told there is no computer that is fast enough for Eclipse.13:42
timonator heh heh13:42
chris2 joined13:42
temoto left13:42
mxey timonator: So he likes Eclipse, Java and Subversion. Why are you even talking to him? ;)13:43
xanonus joined13:44
d0k_ left13:44
timonator he is a very dear friend to me, that's why13: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 files13: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 do13: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 left13: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 in13:46
LiamH joined13:46
deskin one example would be expanding $Date$, $Author$ or whatever CVS-style keywords13:46
albertito left13:47
timonator ah, that's neat13: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 now13: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 ever13:50
branching alone sold me on git13:50
EmilMedve joined13:50
bobmcw well, the merging after I branch13:50
SVN can branch, it's merging that's painful13:51
timonator and svn branches have to be pushed to the server13:51
for everyone to see13:51
eMBee but branching in svn is much more expensive compared to git13:51
andres And its merge tracking is a bad joke because of multiple reasons (no repeated merges, slow slow slow)13:51
univate left13:52
eMBee and the svn interface to branches and tags, making them look like directories, is just horrible13:52
andres: are you talking about merge tracking in svn 1.5?13:54
loincloth joined13:54
univate joined13:54
andres eMBee: yes13:54
jonaskoelker left13:55
jonaskoelker joined13:55
eMBee andres: do you have experience with that or a pointer to some text explaining the problems/limitations?13:55
Yuuhi joined13:55
andres eMBee: I have some experience and no pointers I am aware of without searching13:56
timonator what happens to a file that is in revision control and later someone adds a .gitignore that matches it?13:56
Pieter nothing13:56
timonator so it stays in there?13:56
Pieter .gitignore only matches untracked files13:56
Cacheaway joined13:57
Pieter yes13:57
nikolasco joined13:57
timonator what does svn do in that case?13:58
_Vi joined13:58
loincloth left13:59
timonator i mean, add svn:ignore after the file has been checked in13:59
andres timonator: the same14:01
loincloth joined14:02
jds left14: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 feature14: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 same14:06
just a matter of taste14: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 heated14:06
mxey dsop: Not really, Git is much more powerful.14:06
dsop mxey: not really14: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 etension14:07
mxey: hg's history is immutable14:07
mxey Git's history is as well.14:07
dsop depends on the view. Well nevermind, I guess not.14:07
solydzajs left14:08
dsop what I mean is: both have advantages and disadvantages it's up to you that you chose14:08
vbabiy joined14:08
mxey If you think so, tell me what Mercurial's advantage is.14:08
dsop e.g. git is so hard to interface with14: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 different14:09
ashleyw_ left14: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 sure14: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 serve14:10
and zeroconf14: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 want14:10
telmich that announces what?14:10
mxey dsop: Git supports aliases.14:10
Voker57 dsop: not really, one or two14:11
mxey alias.serve=!git daemon --verbose --reuseaddr --base-path=. --export-all ./.git14:11
dsop mxey: but it is not very user friendly14:11
mxey Aliases are user friendly.14:11
dsop mxey: but not git daemon14:11
telmich: it announce hg repositories14: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 details14: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: nice14: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 like14:12
it's not a technial think: if you prefer the unix-style with a little bit more power use git. if not use hg14:13
chalky left14:13
deskin hmm, one in every seven commits in git.git is a merge; no way I'd want to do that in svn14:13
mxey Power is more important than beginner-friendlines… you are a power user for a longer time than you are a beginner14:13
dsop I stick to the 80/20 rule and therefore hg is as perfect as git is. you use 20% of the features14:13
jm joined14:13
dsop mxey: I actually don't find something that I want to have in hg that's not implemented yet14:14
mxey Maybe you should reach beyond that arbitrary barrier and discover Git.14:14
ashleyw joined14: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 bad14:14
they all have their points and their reasons to use them.14:15
esden joined14: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 points14:15
typical thing which hg is bad: reflog, rebasing, etc.14:15
synchris left14:16
mxey You are free to believe that, but stop bothering me with it.14:16
dsop typical thing git is bad: interface, simplicity, windows14: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 gui14:17
univate left14:17
telmich dsop: ahh, in that way14:17
mxey Usual Windows users should that away from version control.14:17
s/that/stay/14:17
vbabiy left14:17
telmich dsop: but I mean -- the "normal" way (commandline) should work without problems, doesn't it?14:17
vbabiy joined14:17
dsop telmich: yes, for sure14:17
telmich mxey: well, I'm not sure whether this would help... the real solution is to get rid of windows at all14: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 gui14:18
mxey telmich: Well, Ubuntu GUI users are not much better.14:18
azuk telmich, there are problems even in command line use14:18
_Vi left14:19
jds joined14:19
bartman left14:20
telmich azuk: which ones?14:20
_Vi joined14:20
muthu_ joined14:21
vbabiy left14:24
vbabiy joined14:24
timonator my friend says, that the world doesn't need git, that it's only good for special cases like for example google android14:24
but for any non-huge-scale project it's nonsense, as people will just adapt the SVN workflow of one central repo14:25
telmich timonator: not true14:25
timonator yeah, that's what i said14:25
telmich timonator: I was just creating some t-shirts for a local hackers group14: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 git14:26
mxey uses Git for almost everything14:26
telmich mxey: yep, you can find them there: http://git.schottelius.org/?p=EOF/shirts-2008;a=summary14:26
timonator heh14:26
mxey oh, !eof?14:26
telmich yep14: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 joined14:27
mxey yes14:27
telmich nice14:27
where are you from?14:27
dsop hmm 25C3.good option14:27
mxey first one14:27
telmich: Vicinity of Düsseldorf.14:27
telmich mxey: ahh, german14:28
mxey nickt14:28
scientes left14:28
telmich = ch,zh14:28
telmich hmm, let's make a git workshop14:29
vaskaren left14:29
vbabiy left14:29
vaskaren joined14:29
mxey I'm giving Git introductions about every week at work now :D14:29
vbabiy joined14:29
vbabiy left14: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 company14:30
softdrink joined14:31
_Vi left14:33
charon pflanze: untick "limit diffs to listed paths" in gitk's settings14:33
softdrink left14:33
snitko left14:33
telmich mxey: http://events.ccc.de/congress/2008/wiki/!eof#Using_the_distributed_version_control_system_git14:34
grahal left14:34
timonator telmich: we could come visit you :)14:34
mxey agreed.14:34
the chat system sounds interesting as well14:34
telmich timonator: sure, you are invited to have a look at the chaotic, friendly hackers group14: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 left14: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 space14: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 heh14:37
shep-werk joined14:37
shep-werk Howdy all14:37
mxey moin shep-werk14: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 dear14:38
they are gonna hunt down all Git users!14:38
EiNZTEiN left14:38
timonator no, all slackers that discourage on-topic talk on #git14:38
mxey yeah, I should hack some more JavaScript.14:38
bartman joined14:39
shep-werk timonator: you want on-topic discussion? Does that mean you will answer my question? :-D14:39
telmich mxey: it's mostly about how to survive as a community, though you are not living next to each other14:39
timonator if i can, yes. ask14:39
mxey telmich: ah14: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 branches14:40
obviously, as time goes on, more will be pure development, and less will be fixes that will go on that branch14:40
timonator yeah14:41
parasti joined14: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.014:41
we use other tracking things (bugzilla flags, e.g.) but git really is the authoritative place14: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 nicely14:43
Gitbot shep-werk: the gitworkflows manpage can be found at http://git.or.cz/man/gitworkflows14:43
cannonball joined14: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.014:44
qrush left14:44
qrush joined14:45
wsuff left14:46
shep-werk deskin: yeah, basically we do the downwards cherry-picking now14:46
[RIT]Rawn027 joined14:46
shep-werk which can be painful14:46
deskin yes14:46
shep-werk I guess the root cause it that we will fix a bug in dev14:46
then realize that it is broken in 7.0 as well14:47
jackdempsey joined14:47
shep-werk maybe that means that our workflow should be the other way around14:47
deskin well, that can be addressed by careful testing for the bug in both places14:47
shep-werk find a bug14:47
yeah14:47
eMBee would generally want to test a fix in dev first, before adding it to stable14: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 crazy14:48
deskin one can do that (test fix in dev percolates to stable), but topic branches are a better way than cherry picking14:48
aroben joined14:48
mxey shep-werk: Automated testing is not crazy.14:48
shep-werk mxey: I know, just poking fun at you14:49
mxey Thought so14:49
eMBee unfortunately automated testing does not include automated test-writing14:49
deskin realised just the other day that 'make test' in git.git could benefit from the -j option; now patches come out 3x sooner14: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 use14:49
suite*14:49
mxey hrhr14:50
peeja left14:50
mxey can't you run single tests?14:50
xjjk left14: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 easy14:50
eMBee: our testsuite includes solaris 8, on a not-too-fast machine :-(14:51
xjjk joined14: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 trunk14:52
shep-werk eMBee: I guess the scope is just different, as that wouldn't be very feasible here14:53
ankit9 left14:53
eMBee shep-werk: that's what i wonder about, such a testsuite would not work at all here14: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 commit14: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 joined14:56
shep-werk it seems once a single commit like that occurs, you can no longer do merges14:56
absentia joined14:56
timonator well, you'd cherry-pick anyway, wouldn't you?14:56
after a while, i mean14: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 applies14: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 important14: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 master14: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 lot14:58
shep-werk absentia: git reset --hard will put files back to the current HEAD14:58
absentia thank you14:58
timonator or whatever ref-like you put there14:58
absentia thank you14:59
EiNZTEiN_ joined14:59
EiNZTEiN joined14: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 confusion15:00
deskin: preaching to the choir there ;-)15:00
absentia fvck15:01
absentia left15:01
reithi left15:01
scientes joined15:01
withanx joined15:02
thiago_home left15:03
thadwheeler joined15: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 left15: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 joined15: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 weird15:07
xlq weird15:07
deskin thadwheeler: I've seen this one before; default vi exits with an error code on some mac setups15:07
shep-werk thadwheeler: use emacs ;-)15:07
shep-werk starts flamewar15:08
cbreak I use os x 10.5 and it works15: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 joined15:08
Weaselweb left15: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 it15:09
but ymmv15:09
Hendu: very much so, see http://www.kernel.org/pub/software/scm/git/docs/git-merge.html the configuration section15:10
Hendu timonator: thanks15: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 it15: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 changes15:12
cbreak artefact:~ cbreak$ vi --help15: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 reason15:13
cbreak that works for me with git15: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 clear15:14
deskin is not a mac user, so there could be some translation issues15: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 vim15:15
esden left15:15
cbreak and it works for me, which is weird15:15
deskin try this: 'vi'; then ':q'; then at the shell, echo $?15:16
cbreak with git version 1.6.0.3.523.g304d015:16
thadwheeler so I can change it in the git config core.editor15: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 115:17
deskin exactly15:18
thadwheeler ls15:18
oops15:18
threeve joined15:18
deskin now try './myvim'; ':q'; 'echo $?'15:19
ashleyw_ joined15:20
cbreak how do you exit vim?15:21
esden joined15:21
Rhonda cbreak: :q!15:21
xlq :q15:21
or ZZ15:21
|kukks|kukks15:21
cbreak :q! should not work15:21
deskin the ! doesn't make a difference15:21
Rhonda cbreak: Why shouldn't it work?15:21
cbreak it will not save the commit message15:21
bobmcw if you've :w first, :q! is fine15:21
cbreak yeah, but if not, it won't :)15:21
thadwheeler ls -al15:22
xlq '!' means to discard changes15:22
Rhonda Was about exiting. Noone mentioned saving changes. :)15:22
deskin no, ! means to really quit15:22
xlq ...when applied to :q15:22
yes15:22
well, it actually really closes a window15:22
PerlJam ! means to emphatically do whatever operation it is attached to.15:22
Rhonda If you want to save and quit, I suggest :x15:22
deskin ah, you're right, discard anything since last written15:22
PerlJam e.g., :w! foo means to really write foo even if that overwrites and existing foo15:23
s/and/an/15:23
deskin but it doesn't change exit status15:23
xlq and :help! tries to calm you down15:23
cbreak my vi gives an exit value of 015:23
Rhonda xlq: haha, cool easter egg :)15:23
cbreak what does "which vi" return?15:24
xjjk left15:24
jackdempsey left15: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 something15:24
deskin well, if vim exits with 0 already, just use that, not my script15: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 115:25
cbreak which is your regular one?15:25
because I know for sure that the one from mac os x returns 015:26
xlq Right there, next to your regular one15: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 joined15:26
deskin i.e. whatever the other branch has in terms of content doesn't matter; the result tree is always just what you have15:26
thadwheeler cbreak, in run vim - exit and get a 1 as a return code15: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 change15:27
thadwheeler which vim gets me /usr/bin/vim15:27
cbreak weird15:27
deskin shep-werk: I highly recommend it15:27
cbreak what version?15:27
deskin the test repo thing, that is15: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_ left15:28
thadwheeler cbreak, I wonder if its because I installed git without ports or fink.. .15:28
cbreak I installed git from git15:28
but my version is a bit older. and either way15:29
xlq let's hope that wasn't your first install, cbrake15:29
cbreak it should not change the return code from vim15:29
xlq let's hope that wasn't your first install, cbreak15: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 effectively15:29
thadwheeler cbreak, vim is 7.2.2215:29
cbreak very weird. I have 7.215:29
ashleyw_ joined15:29
cbreak so, the same15:30
tjogin left15:30
ashleyw left15:30
ashleyw_ left15:30
thadwheeler not a big deal really - I can still use the Textmate Bundle or citool15:30
cbreak xlq: I stopped counting :)15:31
[RIT]Rawn027 left15:31
unreal joined15:31
came0 left15:33
ia left15:34
shep-werk deskin: I think I am starting to see what is happening here15:34
_Vi left15:34
shep-werk so, if I make a change in 7.0 that should *not* be in dev15:34
i commit in 7.015:34
jackdempsey joined15:34
shep-werk then I merge 7.0 into development with -s ours15:35
which just does *not* change the files15:35
but, when I do a future change in 7.0 that *should* be in dev15:35
then I can do a normal merge, and still get that change15:36
deskin shep-werk: you got it exactly15:36
jackdempsey left15: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_ left15:37
deskin I'm off to $work, have fun with your merges15:37
shep-werk thanks for the help15:37
have fun15:37
xlq Oh, I get it!15:38
powerfox joined15:41
bdiego joined15: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 joined15:42
xlq that's not very wise15:43
Hendu left15:46
akitada joined15:46
murphl joined15:47
jonaskoelker left15:47
Zathrus if you're doing that, then you may as well just use rsync15: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 there15:49
knobo git config filter...15:49
parasti ciaranm: man git-commit-tree15:51
Gitbot ciaranm: the git-commit-tree manpage can be found at http://git.or.cz/man/git-commit-tree15:51
ciaranm ta15:51
xanonus left15:52
girishr_ left15:53
Ramblurr joined15:54
Ramblurr i have a git repo that isn't using git-svn, and i need to publish this git repo to an svn repo15:55
ideally keeping the history15:56
all the git-svn articles i'm finding talk about going from svn->git-svn15:56
ahupp|fb joined15: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 dcommit15: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 joined15:58
Cacheaway left15:58
Cacheaway joined15:58
willb joined15:58
JackTheRabbit joined16:00
JackTheRabbit left16:00
JackTheRabbit joined16:01
JackTheRabbit left16:01
JackTheRabbit joined16:02
xlq boingboingboing16:03
metajack_ joined16:04
esden left16:04
esden joined16:05
JackTheRabbit Hi esden!16:05
bobmcw_ joined16:05
lil-murph joined16:05
esden ahh hi JackTheRabbit16:06
bobmcw left16:06
bobmcw_bobmcw16:07
bronson joined16:07
rolfbrolfb_away16: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 left16:08
mw joined16:11
metajack left16:13
sverrej left16:13
parasti rebase -i doesn't exactly qualify as "revert"16:13
madduck but it can squash16:13
pflanze: no. :)16:13
parasti ah, squash the manual reverts? ok16:13
Voker57 left16:13
cgardner left16: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 joined16:14
bartocc left16:15
grahal joined16:15
madduck which would have been in a branch, right? You can revert the merge...16:15
iulian joined16:19
Ryback_ left16:19
metajack left16:20
sgrimm joined16:22
Ilari joined16:23
mkdread joined16:26
asn left16:26
bieneff joined16: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 left16:28
stephens joined16:28
vaskaren joined16:28
metajack_ left16:28
jackdempsey joined16:29
not-xjjk joined16: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 appears16:30
thanks parasti , it worked16:30
parasti just make sure it didn't add any other changes you didn't want to add16: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_ joined16:35
JackTheRabbit left16:37
reel_ left16:40
cgTobi joined16:40
kumbayo joined16:41
kyle___ left16:41
xjjk left16:41
johnflux joined16:42
johnflux sorry for stupid question - how do I change to specific revision?16:43
vaskaren left16: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 moment16:43
cbreak you can use git rebase -i16: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 head16: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_ joined16: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 branch16:45
Ilari johnflux: It's just a warning.16:45
nadim pflanze: I'm always interrested in others input16:45
drewr joined16: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 left16:46
IRSeekBot left16: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 no16: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 other16:47
cbreak git is not linear16: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 hmm16:49
cbreak if you have a branch that contains merges, it could have two concurrent streams16:49
or more16:49
johnflux yeah true16:49
hmm, how can I do this... I want to bisect Xorg which has lots of modules16:49
cbreak do they use git submodules? I think those are bound to the main by revision16:50
johnflux how can I tell ?16:50
cbreak: no they don't16:51
:)16:51
sgrimm left16:52
Yuuhi left16:52
sgrimm joined16:53
lil-murph left16:54
Strogg left16:54
Strogg joined16:55
johnflux cbreak: it seems that you can do what I want16:55
git checkout -d '4 months ago'16:55
xjjk joined16:56
fhobia joined16:56
lil-murph joined16:57
ceej joined16:57
tango_ left16:57
mkdread left16:57
cbreak hmm...17:00
johnflux cbreak: sorry wait :)17:00
cbreak I wonder how it resolves the ambiguity. /me goes read man page17:00
johnflux cbreak: sorry the syntax seems to be something like: git checkout branch@{yesterday} for example17:01
but I can't get it to wokr17:01
work17:01
cbreak that's the reflog17:01
imagine you update your repository from the central every month17:01
after the update, you do a checkout of half a month ago. you get how your local repository was half a month ago17:02
not the central one17:02
nadim wow! that's too often ;)17:02
hobodave joined17:02
edwardam joined17:03
johnflux hum17:03
scientes left17:03
Ramblurr left17:03
bartman left17:03
EmilMedve left17:04
scientes joined17:04
EmilMedve joined17: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 joined17:05
bartman joined17:06
xanonus joined17: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/g17:07
knobo: So, two files with identical contents need to map identically.17:07
not-xjjk_ left17:08
m3y3ring` joined17:08
johnflux fatal: ref HEAD is not a symbolic ref. won't bisect on seeked tree17:09
what does this mean?17:09
cbreak that means you have a detached head17:09
you possibly did a checkout on a hash value directly17:10
or a reflog entry17: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 commit17: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 checkout17:11
johnflux It says now (when I bisect) won't bisect on seeked tree17:11
oh, I need to reset my last bisect17:12
why doesn't it just say so!17:12
someone make these errors more clear please :-)17:13
Jacolyte joined17:13
charon left17: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.317:14
is that old?17:14
latest is 1.6.0.417:14
hmm17:14
Ilari johnflux: Not terrible, but old...17:14
Ryback_ left17: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 left17:16
albertito joined17:16
xjjk left17: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 joined17:19
cgardner joined17: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 cool17:21
now that I've got it going :)17:21
knobo Ilari: how about rcs $Id$ tags?17:21
radarek left17:21
Ilari knobo: Git has export-subst.17:22
m3y3ring left17:22
meyering left17: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 left17:24
knobo Ilari: aha.. It does not fit for everybody though. But you can not please everyone..17:24
carllerche joined17:24
knobo Maybe I have to say with subversion :(17:25
sverrej joined17: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 left17: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 practise17:31
knobo: it introduces merge conflicts :)17:31
gitte left17: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 left17:32
johnflux yeah have your make system get the version from git and put that into a header file17:33
then have your files include that header file17:33
alb left17:34
willb1 joined17:34
Ilari knobo: For just ID of version 'git rev-parse --verify --quiet HEAD'.17:35
tango_ joined17:35
willb2 joined17:35
nud left17: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 left17:37
pkern joined17: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 joined17:38
willb1 left17:38
Ilari knobo: Its not revision ID!17:39
gilimanjaro joined17:40
cedricv left17:40
cgardner left17:40
cory joined17:40
corybantic17:40
tango_ left17:43
ijcd_ joined17:44
Cacheaway left17:45
Cacheaway joined17: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 left17:47
dfarnsworth joined17:48
willb left17: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 left17:51
ankit9 joined17:51
dfarnsworth Ilari, hey! that' easy. In fact it rings a bell. Thanks.17:52
ceej joined17:52
pkern Ilari: Do you know how HTTP alternates would be specified, by chance?17:53
ia joined17: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_ left17: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 joined18:03
kyle__ joined18:04
Ilari dfarnsworth: 'git rev-list <branch> | grep `git rev-parse <id>`'?18:04
mcella left18: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_ joined18:08
JonathanT left18:09
lil-murph left18: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_ left18:14
kRutOn joined18:15
kRutOn hello18: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 gitattributes18:15
Gitbot knobo: the gitattributes manpage can be found at http://git.or.cz/man/gitattributes18:15
johnflux left18: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 left18: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 left18:17
agile left18:17
ankit9 left18:19
Voker57 joined18:19
bobesponja joined18:20
murphl joined18: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_ joined18:22
nibbo joined18:23
not-xjjk left18:24
flazz if i want a gemspec picked up by github need i name it in the gemspec user-projname?18:26
xjjk joined18: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_ joined18:31
tango_ joined18:31
thadwheeler left18:33
xlq cgTobi: oh I see, because git-instaweb doesn't work on Windows?18:33
naeu left18:33
cgTobi xlq: yeah, for example18:34
xlq: git-deamon is also not available18:34
david_koontz joined18:34
alley_cat joined18:34
maronnax joined18: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-bash18:35
xlq: I should note that I use msysGit on the windows machine18: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 joined18:37
Sigma` joined18:37
vbabiy left18:38
parasti maronnax: hmm, are you just looking for git-svn?18:39
putrycy joined18: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 left18:42
parasti otherwise, look for it in your distros package repo or compile it18:42
simmerz left18:42
parasti though I guess you just need Perl and there's nothing to compile18:43
joydivider joined18:43
boto left18:46
EiNZTEiN left18:46
Sigma`Sigma18:47
maronnax parasti, well thanks18: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 left18:50
CodeOfficer joined18:51
geckosen1tor joined18: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 joined18:53
geckosenator left18:53
perezd88 joined18:53
ReinH joined18:53
cgTobi Ilari: I'll probably have to do just that or stick with pushing18:54
xlq: you can't push over http AFAIK18:55
xlq cgTobi: oh, you want pushing too18:55
juanjoc joined18:55
eddyp joined18:55
cgTobi xlq: sorry, no, pushing works fine via ssh, my fault. I mean I don't have a webserver on the windows machines18:56
xlq: and its not supported by msysgit as far as I can tell18: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 joined18:57
altrux_ joined18: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_awayrolfb18: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 retroactivly18:59
how do i go about removing the history of a file18: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-branch18:59
Gitbot altrux_: the git-filter-branch manpage can be found at http://git.or.cz/man/git-filter-branch18:59
altrux_ thanks so much!18:59
i didn't know what to search on, my google_fu is weak today19:00
eddyp left19: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 github19:01
mauricio joined19:01
Voker57 deskin: because github has no bugtracker, wiki and downloads?19:01
mauricio guys19:02
i've checked out a remote branch19:02
and set a local branch to track it19:03
now i get this after some work19: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 me19:03
xlq I appear to be unable to clone from an instaweb19: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_boto19:04
pflanze mauricio: this is exactly what you should expect, isn't it?19:04
you did 3 commits, right?19:04
mauricio yep19:04
but if i push19:04
i get noshing19:04
"already up to date"19:05
but the commits aren't being pushed19:05
pflanze ah, you need to mention the branch probably19:05
ahupp|fb left19:05
pflanze git push origin css_changes_shaun19:05
maybe you aren't on that branch locally, btw; check with git branch -av19:06
mauricio * css_changes_shaun_local 374983f Free news items19:06
master 0af7241 specs19:06
origin/HEAD 0af7241 specs19: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_changes19:06
origin/css_changes_shaun ab43ee3 Refactor CSS. More components added to the styleguide.19:06
origin/css_changes_shaun_local 374983f Free news items19:06
origin/css_changes_shaun_test f554636 Merge branch 'css_changes_shaun' of ssh://ivor@dev.talkies.de/repos/talkies into css_changes_shaun_test19:06
origin/css_shanges_shaun 374983f Free news items19:06
origin/master 0af7241 specs19:06
origin/new_design 9fa8cfc Tweaking actor detail page19:06
origin/rails_pre_2.1 f79d97f adding host to test mailer19:06
this is the output19:06
right now i'm at css_changes_shaun_local19:06
pflanze please don't paste more than about 3 lines.19:06
mauricio ops19:07
sorry19:07
pflanze if necessary, use a paste service for it.19:07
ahupp|fb joined19:07
mauricio [branch "css_changes_shaun_local"]19:07
remote = origin19:07
merge = refs/heads/css_changes_shaun19:07
this is the branch config19:07
which seems to be fine for me19:07
(not that i'm specifically good with git anyway...)19:07
ahupp|fb left19:08
pflanze yep, and your remote and local are the same commit, 374983f19: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 Subversion19:08
mauricio holy shit19:08
synchris joined19:09
mauricio pflanze, well, there was no css_changes_shaun_local at the remote branch19:09
dreiss joined19:09
unreal_ joined19: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_shaun19:10
jfontan joined19:10
pflanze mauricio: yes, you've probably created that one now19:10
nibbo left19:10
mauricio pflanze, how?19:10
pflanze did you run my command? if so, that's the culprit, sorry19:11
mauricio pflanze, :( no prob19: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 parts19:13
Gitbot well: the git-push manpage can be found at http://git.or.cz/man/git-push19:13
mauricio pflanze, it seems to be ok19:13
pflanze your config only contains a merge, not push entry, it seems19:13
mauricio hum19:13
pflanze it only has remote = origin, and assumes the name of the remote branch is the same as the local19:14
you really probably want to merge back your local branch to the css_changes_shaun branch19: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_ joined19:15
xlq left19:16
dkerschner joined19: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 joined19:17
mauricio pflanze, if i try git checkout origin/css_changes_shaun19:18
it seems to be ok19:18
brandon joined19:18
mauricio i can merge and it seems to work19: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 push19: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 branch19:18
git checkout master; git branch -m css_changes_shaun_local css_changes_shaun19:18
nice_burger joined19:18
charon joined19:19
naeu joined19:19
pflanze then git checkout css_changes_shaun; git push19:19
Maybe the "git branch -m" works also while you'r on that branch, I don't remember.19:20
mauricio OMG!19:20
man19:20
willb2 left19:20
mauricio it seems to work19:20
pflanze, thanks!19:20
nud left19:20
mauricio i've been struggling with this since morning19: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 left19:21
pflanze well, in which way not a problem?19:21
nibbo joined19:21
pflanze can you tell the URL?19:21
niki joined19:21
not-xjjk joined19:21
pflanze ah, got it19:21
SyntaxRebel joined19: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 location19:22
ankit9 left19:22
mauricio pflanze, git checkout --track -b new_branch origin/new_feature_name19:22
SyntaxRebel why does git always use "more" as its pager? even why i set GIT_PAGER=less -R, it still uses more! :S19:22
qrush left19: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 yourself19:23
look after this19: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 christhmas19: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 left19: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- joined19:27
mauricio 1.5.619:27
SyntaxRebel does git use GIT_PAGER for help pages?19:28
rtomayko joined19:28
mauricio pflanze, that's what i'm about to do, just checking out that the push ocurred correctly19: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 left19: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 left19:32
SyntaxRebel charon: thanks btw. :)19:32
xjjk left19: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 anywhere19: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 too19: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 $someurl19:35
sorry19:35
git remote add otherorigin $someurl19:35
and then19:35
git checkout --track -b new_branch otherorigin/new_feature_name"19:35
mauricio yeah19: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__ left19:38
evalsaidem left19: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 joined19:42
mauricio i'm at openSUSE :)19:42
if i get a newer version locally19:43
do i need to upgrade the server?19:43
pflanze, just to be sure :D19:43
pflanze nah, if the version matters at all for this case, it will be the local one.19:43
jonshea left19:47
ceyusa left19:48
pygi joined19:48
xjjk joined19:49
qrush joined19: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 documented19:52
cgardner mauricio: yes.19:52
mauricio cgardner, do as pflanze said, they are well documented19: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 archive19:53
synchris left19:53
pflanze altrux_: yes, trash .git/refs/original/$thefile19:53
mauricio cgardner, they'll give you the variables you want, it's just a matter of writting what you want in your preferred language19: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 anyway19:54
altrux_ ok cool19:54
i got backups before is tarted too19:54
orkim joined19:54
mauricio left19:56
bartman left19:56
cgardner mauricio: Is this the only documentation for the hooks? http://www.kernel.org/pub/software/scm/git/docs/githooks.html19:56
murphl left19:56
cgardner that's all I could find in the online documentation19:56
err... on the kernel.org documentation19:57
pflanze cgardner: *have* you looked at the example scripts?19:57
cgardner yeah, they don't really help a lot19:57
sdboyer left19: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 joined19:58
not-xjjk left19:59
bartman joined19:59
_Vi joined20:00
lorandi left20:00
AaronLBorg left20:02
sdboyer joined20:03
nice_burger left20:04
DrNick left20:07
flazz left20:10
flazz joined20:11
EiNZTEiN_EiNZTEiN20:11
synchris joined20:11
__ash__ joined20:11
_psychic_ joined20:11
__ash__ um.... anyone in here a guru of git?20:12
grahal left20:12
Ilari __ash__: Well, shoot anyway... :->20:12
brandon left20:12
agib left20:13
iulian left20:13
__ash__ error: remote 'refs/heads/master' is not an ancestor of20:13
local 'refs/heads/master'.20:13
whenever i do a push i get a20:13
i get that ^^20:13
and i was wondering what is the right way to fix this issue20: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 HEAD20:14
no, i am the only one that has20:14
pflanze If nobody fetched from your repository, use git push --force20:14
__ash__ is there a way i can just tell it to override whats on the remote?20:14
gotcha20:15
pflanze If somebody did fetch, you'll screw up his history a bit.20:15
DrNick joined20:16
ebzzry left20:16
lanwin joined20:17
pflanze (and/or give him merge conflicts, depending on your local changes)20:18
agile joined20:18
kennethlove joined20:19
jogla where can i find documentation about submodule?20:20
man git-submodule does only explain some comments20:20
Gitbot jogla: the git-submodule manpage can be found at http://git.or.cz/man/git-submodule20:20
ankit9 left20:21
jogla hmm.. the description section is missing in my manpage20:21
ahupp|fb joined20:22
cgTobi left20:22
edwardamedwardam_lunch20:23
ezyang joined20:23
nud_ left20:24
hobodave left20:24
hobodave joined20:25
cgTobi joined20:27
krunk-|work joined20:28
krunk-|work I was getting these errors when trying to push/pull from a remote repo: zsh: command not found: git-receive-pack20: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 set20:33
azuk krunk-|work, that doesn't sound credible20:33
_psychic_ left20:33
deskin cgTobi: minor difference: cloning will hard-link the pack files, so you'll start off with minor additional disk usage20:33
Ilari krunk-|work: Put PATH redefintion in .zshrc?20:33
cgTobi jogla & deskin: cheers20:34
bartman left20: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 docs20:35
azuk: hm, what could it be then? I'll put the needed path in the rc just to test20:35
bartman joined20:36
c0sin joined20:36
jeckel left20: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 me20:37
krunk-|work azuk: sounded weird to me too, honestly20:39
azuk actually, it's precisely .zshenv that I would expect to be read20:39
b_jonas joined20: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 left20:41
drizzd joined20: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 it20:42
Voker57 left20:45
nothinghappens left20: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 git20:48
b_jonas drizzd: yeah, that much is ok20:49
if I only had to do that svn worked too20:49
it's the more complicated parts where I get annoyed with svn20: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 abort20:49
I think I ran into it with a non-git related issue20: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 seconds20:50
but there are also more important problems20:50
willb joined20: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" document20:51
alikins left20: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 file20:51
perezd88_ joined20:53
b_jonas I'm using svn mostly for managing projects only I work on on my home computer btw20:54
perezd88_ left20:54
b_jonas and I'd use git for the same as well20:54
PerlJam b_jonas: what?20:59
b_jonas: svn groks symlinks20:59
nud_ joined20:59
pkern left21: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 file21:02
so in that case you have to move the target file, do the svn copy, and move it back to that name, and commit21:02
which suks21: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__ joined21:03
bieneff left21: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 joined21:06
RichiH ok, question21:06
i have a repo, foo.git21:06
it pulls from a reomte source21:07
into a branch called upstream21:07
Ilari RichiH: Branch, not a remote?21:07
perezd88 left21: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 upstream21: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 copies21:09
but there doesn't seem to be a way to just directly set the parent of a new file when I add it21:09
so the interface is inconvenient21:10
RichiH now, i tag the current state of master21:10
and develop in feature2, create fix2 and merge it into master, as well21:10
master is updated with the contents of feature2 and fix221:11
_Vi left21: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 less21:12
because git lacks any functionality to express where a file comes from21: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, perfect21:13
Ilari RichiH: I think its not updated automatically.21:14
uau RichiH: branches basically never change automatically21: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 branchs21:14
b_jonas uau: how would it store representations efficently?21:14
RichiH ok, thanks21:14
makes sense, that way21:14
b_jonas uau: I mean, they say they store the repo compactly21:14
so it has to handle file moves21:14
kumbayo joined21:14
cgTobi left21: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 UI21: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_ joined21:15
uau except performance21:15
joshdavey left21:15
b_jonas Ilari: I see21: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 smarter21: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, thanks21: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 joined21:17
b_jonas pity21:17
the moves are not only convenient because of the efficent representation21:18
RichiH hmm21: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 too21: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 git21: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 file21: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 name21:19
RichiH b_jonas: git is different from svn. it does not really know/care about files. all it does is manage diffsets21: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_08120521:20
uau yes there are no limitations on that21:20
b_jonas well, svn also cares less about files than cvs21:20
esden left21:20
alikins joined21:20
drizzd b_jonas: how so?21:20
aknowles joined21: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: k21:21
thanks21: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_lunchedwardam21:22
b_jonas I don't really care about this because I don't use cvs anymore for some time21:22
I used to work with cvs for a little time21:22
in a larger project21:23
and I also tried it at home back when I didn't really know about the other version control systems21:23
RichiH can i tag a state that is in the past?21:23
uau RichiH: you can tag arbitrary objects21:23
even things other than commits21:23
RichiH uau: ok21:23
Ilari RichiH: Anything that has object ID can be tagged.21:24
uau like individual file contents or a directory tree21: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 moves21:24
uau b_jonas: well... depends on how you view it21: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 line21:25
s/svn/cvs/21:25
sorry21:25
RichiH or some other contruction which relies on a tag21: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 svn21:25
Ilari RichiH: Tags are only 'semi-global'.21:25
RichiH Ilari: that's what i meant, yes21:25
b_jonas but the other differences outweigh that21:25
shep-werk left21:25
RichiH so that is by design, then21:25
b_jonas though the cvs way isn't that good either21:26
RichiH not a decission i would make, but OK. now that i know, it can be accounted for21:26
uau b_jonas: in git both branches and tags are at their most basic just simple pointers to objects, "name"->SHA1_HASH21:26
b_jonas uau: but a branch has to know it future lineage21:26
uau a branch points to its current state21:26
b_jonas that is, if I understand correctly, in git you can have separate commits that have the same commits as parents21: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 See21: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 state21: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 actually21:27
bdiego left21:27
uau so creating a new branch is basically just creating a pointer that tells the value of one SHA1 hash21: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 yes21: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 branch21:29
or something like that21:29
azuk RichiH, note that git pull doesn't change move/delete tags21: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 joined21:31
RichiH so while i pull code, i fetch tags?21:31
mjc joined21: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 later21:33
azuk RichiH, no, you get tags with pull as well, pull is fetch + merge21:33
esden joined21:33
azuk RichiH, I suggest you read some tutorial / user's manual21: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 bin21:34
er I need to add the $path/libexec to my path21: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 bindir21:35
krunk-|work: http://git.pastebin.com/m2082a9f821:36
not-xjjk joined21:36
RichiH azuk: i am doing that, but bouncing ideas off other people's minds is faster/better in some circumstances21:37
krunk-|work doener: huh, wonder what went awry with my install21: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 not21:37
RichiH Ilari: wouldn't the tag need to be persistant once i branch off from it?21:37
krunk-|work maybe a config option21: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 joined21: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 left21:41
chris2 left21:42
netoman left21: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 left21:43
c0sin left21:44
RichiH Ilari: so i can basically pull the rug from under a branches' feet and it doesn't care in the least21:45
vbabiy_ left21:45
vbabiy joined21: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 left21:47
RichiH makes sense21:47
RichiH has to say that the underlying design of git appears to be extremely clean21:48
orkim left21:48
jfontan left21:48
aspotashev left21: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 joined21:50
RichiH tags as in the tags i can set myself?21:50
boto left21: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 speak21: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 ad21:54
PhilK left21: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 left21:59
unreal_ left22:00
RichiH Ilari: k, thanks :)22:01
unreal joined22: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 joined22: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 joined22:05
nibbo joined22:05
RichiH pkern: afaik, partial checkouts are not supported22:05
synchris left22:05
pkern RichiH: I want to get rid of it in the repo.22:06
loincloth left22:08
LiamH left22:08
loincloth joined22:09
flaguy joined22:10
ceej left22:11
loincloth left22:15
kumbayo left22:16
sanity_ joined22:17
bobmcw left22:17
ReinH left22:18
rtomayko left22:18
petteri left22:18
petteri joined22:18
rtomayko joined22:18
rphillips left22:20
rphillips joined22:20
MrHeavy left22:21
bobmcw joined22:25
cmarcelo left22:26
kyle__ left22:28
metajack joined22:28
vbabiy left22:29
up_the_irons left22:29
up_the_irons joined22:30
ceej joined22:30
ahupp|fb left22:30
Cacheaway left22:31
b_jonas left22:32
ezyang left22:32
metajack left22:33
ReinH joined22:34
kennethlove left22:35
cbrakecbrake_away22:38
ahupp|fb joined22:39
alikins_ joined22:43
alikins left22:43
cops joined22:50
parasti left22:50
cops left22:50
hobodave left22:51
juanjoc left22:52
JonathanT left22:55
jfontan left22:55
xjjk joined22:56
Cacheaway joined22:57
smtlaissezfaire` left23:00
thiago_home joined23:00
mosno left23:01
incidence left23:01
aknowles left23:02
not-xjjk_ joined23:03
bantic left23: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-branch23:04
parasti joined23:06
lucsky left23:06
heda joined23:07
not-xjjk left23:07
mutex all of the sudden when I see git diffs23:08
it is full of lines like the following23: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 effect23:09
mutex ESC[32mif (parse_args(argc, argv, &args) != 0) {ESC[m23:09
i guess less isn't processing colors ?23:09
thiago_home yes23:09
what's $LESSO ?23:09
$LESS ?23:10
mutex -R -M --shift 523:10
also my .gitconfig says23:10
thiago_home the -R says process ANSI colours23:10
mutex pager = less -+RSX23:11
agile left23:11
mutex yeah so then why isn't my display rendering them is the question23:11
schacon joined23:11
thiago_home and -+R turns it back off23:11
you need -R23:11
mutex oh23:11
ah ha!23:12
works now ;-)23:12
priidu left23:13
bdiego joined23:14
rem7 joined23:15
xjjk left23:15
rem7 left23: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 joined23: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 left23:21
thiago_home filter-branch should do that quite fast if you use --index-filter23:21
SyntaxRebel left23: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-branch23:26
99% cpu23:26
thiago_home disk I/O or just CPU?23:26
pflanze just cpu23:26
thiago_home hmm23:26
no clue then, sorry23:27
pflanze hm strange is that strace -p $pidofgitfilterbranch -f shows:23:27
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 023:27
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 023:27
brk(0xbad000) = 0xbad00023:27
brk(0xb2d000) = 0xb2d00023:27
brk(0xbad000) = 0xbad00023:27
brk(0xb2d000) = 0xb2d00023:27
brk(0xbad000) = 0xbad00023:27
brk(0xb2d000) = 0xb2d00023:27
brk(0xbad000) = 0xbad00023:27
brk(0xb2d000) = 0xb2d00023:27
in a loop.23:27
and almost nothing else.23:27
name left23:29
pflanze so it looks like *bash* is using up all cpu.23:29
cehteh pflanze: allocating memory for datastructures in a loop23: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 now23:30
cehteh strange .. how many memory does it consume? .. and if thats bash then it looks fishy23: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+ COMMAND23:31
9978 chris 20 0 15072 5316 1132 R 100 0.3 13:15.95 git-filter-bran23:31
not-xjjk_ left23:31
pflanze ciaranm: what's that?23:31
ciaranm it's a muppet who says bork bork bork a lot23:32
it's funny because bork sounds like brk!23:32
pflanze aha23:32
willb left23: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 left23:38
pflanze btw this is GNU bash, version 3.2.39(1)-release (x86_64-pc-linux-gnu)23:38
aFlag joined23: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.git23:40
pflanze you need to configure your remotes correctly23:41
man git-remote23:41
Gitbot pflanze: the git-remote manpage can be found at http://git.or.cz/man/git-remote23: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_ left23: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 lynx23:44
parasti also, #github23:44
pflanze aFlag: there are also the "links" and "w3m" console browsers, maybe those work better.23:45
rolfb left23:45
raalkml joined23:46
raalkml left23:47
aroben left23:47
ibuffy joined23: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 left23: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 -l23:49
480023:49
chris@novo:~/repo.or.cz/cj-git-perl-tools/.git-rewrite/map$ cat da0053442bc6dfbd6c530e76f75e25a3256148f5|sort -u|wc -l23:49
123:49
aspotashev joined23:49
pflanze So I guess bash is searching through these lists of identical lines?23:49
sdboyer left23:49
sdboyer joined23:50
pflanze heh actually: chris@novo:~/repo.or.cz/cj-git-perl-tools/.git-rewrite/map$ cat *|sort -u|wc -l23:50
123:50
naeu left23:50
gilimanjaro joined23: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+ COMMAND23:55
9978 chris 20 0 15584 5972 1132 R 100 0.3 35:34.58 git-filter-bran23:55
ahupp|fb left23:55
_Vi joined23:56
bobmcw left23:57
Sigma left23:57
alley_cat left23:57
pflanze btw, filter-branch from git version 1.6.0.423:58
gilimanjaro left23:59
gilimanjaro joined23:59

Logs Search ←Prev date Next date→ Channels Documentation