IRCloggy #git 2008-07-16

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-07-16

pasky Spyro: do the fsck00:00
rtyler pasky: here's the brief transcript between me and the guy evaluationg 1.5.000:00
pasky Spyro: and even before, check permissions00:00
rtyler http://pastebin.com/d582675cf00:00
Spyro I already did. it returned ok00:00
(well no text)00:00
pasky Spyro: the gitweb user has to have full access to the repo00:00
Spyro I've ensured a+r permissions across the repo00:00
pasky Spyro: maybe you're hitting the <8c6202> umask bug00:00
Gitbot [git 8c6202]: http://tinyurl.com/5snfbw -- Fix backwards-incompatible handling of core.sharedRepository00:00
pasky Spyro: and what about +x for directories?00:01
sris left00:01
pasky (hint: a+rX)00:01
Spyro hm. just spotted this though: fatal: unable to read source tree (1d9d8fa8ce1a8481d0239948af1f512af703254b)00:01
BabelO left00:01
pasky I bet on permissoin problem00:01
Spyro aha, a+rX. good call00:01
Thanks :-)00:01
SRabbelier !botsnack00:02
:P00:02
pasky #00:02
(12:24:57 AM) R. Tyler Ballance: like, pretend I wasn't in the meeting :p[M#y@00:02
lol00:02
(oops, sorry for the garbage; my terminal is going all wrong)00:02
Spyro is the umask issue fixed in git yet ?00:02
rtyler heh00:02
pasky Spyro: yes but not in any release00:02
Spyro right :)00:02
pasky Spyro: umask=0644 might be a workaround00:02
test it out00:02
rtyler I somehow got left out of the meeting about SVN, despite being the one looking into Git00:02
pasky er00:02
shared=064400:02
sorry00:02
Spyro prays to the debian gods00:02
pasky rtyler: ah :)00:03
Spyro pasky: yeah I think Im gonna use that for now :)00:03
pasky well I mean *I* didn't test it ;)00:03
ciaranm the debian gods, eh? you need to inscribe your prayers on stone tablets00:03
igorgue joined00:03
SRabbelier ciaranm: nono, stone tablets are not in stable yet00:04
Spyro ciaranm: in triplicate no less... but then I have to say its been remarkably stable and easy to bend to my (unusual) setup.00:04
ciaranm SRabbelier: still? ouch.00:04
SRabbelier stable is still running version 1.4.4 of the Communication package00:04
pasky rtyler: uh - so I can repeatedly merge only if I do no local commits in my branch?00:04
is that really so?00:04
SRabbelier ciaranm: you'll have to use cave drawings instead, no words allowed!00:04
Spyro I have an unmodified debian booting from NFS on three machines, all sharing one fileserver.00:04
ciaranm SRabbelier: i guess that explains dselect00:05
Spyro my machines all run testing :)00:05
SRabbelier lol :P00:05
SRabbelier is running testing as well00:05
SRabbelier etch ftw00:05
pasky is actually pretty happy etch user00:06
SRabbelier :P00:06
Spyro uses the testing alias so I dont have to change it when they shuffle the names around ;-)00:06
cilly joined00:06
pasky oh yeah I used to do that for 'stable'00:06
learnt my lesson after few disasters00:06
SRabbelier Spyro: yeah, lenny, sarge, etch, whatever, I forget :P00:06
pasky: maybe specify the actual version instead then?00:06
pasky well, that's what I did00:07
Spyro well the filestore lost its NFS daemon yesterday. but one application crashing in over 400 days of use is pretty good I think00:07
pasky bearable ;)00:07
Spyro some things actually run faster than a local disk (others not but hey...)00:07
(gigE)00:08
SRabbelier yawns00:08
pasky stop yawning00:08
SRabbelier have fun :)00:08
pasky code!00:08
SRabbelier I'm off to bed :P00:08
pasky aaw00:08
SRabbelier code? tomorrow maybe!00:08
Spyro is gonna catch some darks too I think00:08
pasky hmm00:08
gitte joined00:08
pasky maybe I should do the same00:08
SRabbelier now is bed tiem :P00:08
icwiener left00:08
pasky good night to you then00:08
Spyro just finished preparing the MFD patches for linux...00:09
SRabbelier pasky: check your crontab to see when suspend job runs :P00:09
pasky MFD?00:09
Spyro Multi Function Devices00:09
SRabbelier most f*ing dorky?00:09
Spyro currently queued in RMKs tree to go into mainline00:09
SRabbelier Spyro: DO NOT SEND IT IN YET!00:09
pasky Spyro: uh... like a mouse? I can both move and click!00:09
SRabbelier Spyro: wait till tomorrow ;)00:09
Spyro: ask pasky :P00:09
Spyro SRabbelier: of the code I did tonight is further updates, it needs review now ;-)00:10
SRabbelier don't do anything that could possibly go wrong after... say.. midgnith :P00:10
pasky bah00:10
Spyro but it builds, works, and passes through checkpatch without too many bruises...00:10
SRabbelier Spyro: if you send it in now you'll probably forget something00:10
Spyro: signing it off or such, ccing relevant people00:10
Spyro SRabbelier: Im not, dont worry00:10
thats why I wanted my gitweb working - so it can be reviewed!00:10
SRabbelier Spyro: you are guaranteed to forget something if you send in a patch this late :P00:10
anyway, I'm ranbling, better get going ^^00:11
Spyro I hear you, really :)00:11
SRabbelier cheers!00:11
Spyro night!00:11
SRabbelier left00:11
Spyro Im off too I think :)00:11
TTFN!00:11
rtyler pasky: I'm not 100% certain00:12
I didn't play with it because I have enough brane damage after my git-svn fuckery00:12
schacon left00:13
vmiklos joined00:14
gitte vmiklos: I thought you were on a bike...00:15
lu_zero joined00:16
nbrunson left00:16
pasky rtyler: I see.. thanks anyway00:19
rtyler pasky: the merge tracking is sufficiently brain dead out of the gate though, it depends on svnprops and thus client and server must both be 1.5.000:20
ketralnis joined00:22
njal left00:29
doener_ joined00:31
foca joined00:32
heycarsten joined00:33
noecksit joined00:34
pasky i see00:36
hmm, renaming non-checkedout submodules is annoying00:36
elight joined00:38
joydivider left00:38
pasky will do a horrible hack for now ;)00:39
hansengel joined00:40
hansengel Hi, I just downloaded the Git source, ran ./configure and then make.00:40
I got this error while compiling:00:40
CC daemon.o00:40
In file included from daemon.c:1:00:40
cache.h:9:18: error: zlib.h: No such file or directory00:40
make: *** [daemon.o] Error 100:40
spearce gah. i just posted a message with no To: header and only Cc: header. stupid mutt.00:40
Leefmc joined00:40
hansengel Do I need zlib development files, or something?00:41
spearce hansengel: you appear to be missing the zlib dev package, yes00:41
hansengel ah00:41
yep, that fixed it so far :)00:42
brosner joined00:43
doener left00:44
RaceCondition left00:45
nil hi!00:46
zawir left00:46
GeckoPie_GeckoPie00:46
nil I'm looking for the git equivalent to "darcs revert", ie cancel some changes i did but did not commit to the working files00:46
hansengel left00:47
ciaranm nil: git checkout00:47
elliottc1ble joined00:47
nil ciaranm: it will let me choose which file to revert to the recorded state, and which to keep modified?00:48
ciaranm nil: you tell it the files you want00:48
git checkout iscrewedupthisfile.cc00:48
rofrol left00:49
nil ok, the manpage has good exemples00:49
thanks00:49
bdiego left00:52
mxey joined00:54
elight left00:55
GeckoPieGeckoPie|Sleep00:56
crab joined00:58
elliottcable left00:59
crab is there a shorter way to say "branch/name..origin/branch/name" when i'm doing git log?00:59
gitte No.01:00
But you can use tab completion if you're on bash or zsh.01:00
markkalderon left01:00
godlygeek left01:00
marc_vw joined01:02
ketralnis left01:03
Eridius|work crab: you could make an alias that manufactures that string01:03
crab it was more of a conceptual question.01:04
i'm glad i'm not missing anything obvious.01:04
(i have an alias already)01:04
gitte crab: I smell an XY problem.01:07
crab: if you only want to see if you're up-to-date, and you are on that branch, then a "git status" with the newest Git (next) will show you that.01:07
rtomayko left01:07
rtomayko joined01:08
gitster You certainly mean "git checkout", not "git status", right? The latter one pages ;-)01:10
crab an "XY problem"? huh? i don't have a problem.01:10
elight joined01:12
markkalderon joined01:14
ijcd_ left01:19
lu_zero left01:19
mvw left01:19
gitte gitster: I meant "git status". It pages alright, but it does not change the current working directory.01:21
crab: If I guessed right, and you wanted to know how many commits the upstream is ahead, then you have a problem: you asked the wrong question.01:21
jonshea left01:23
Fullmoon left01:23
gitster If you want to know how many commits the upstream is ahead, "git status" is also a wrong question, isn't it? It talks about your local changes and untracked files.01:25
gitte Didn't you recently change it so it has the same message as git checkout?01:26
gitster That is why I suspected you meant "git checkout" (no other parameters).01:26
gitte One of my repositories shows this:01:26
# On branch master01:26
# Your branch is ahead of the tracked remote branch 'origin/master' by 6 commits01:26
gitster it does not give you a lot of extra cruft as git-status does.01:27
s/it/checkout/01:27
gitte But it is a modifying operation.01:27
Oh, well. You're the gitster.01:27
sgrimm left01:27
warthog9 left01:27
gitster Not at all. "git checkout" is largely no-op if you do not give anything extra ;-)01:27
gitte ... which is a usability wart, just as the name.01:28
Anyway, I have to close my eyes and get some letters from the end of the latin alphabet.01:28
IOW git night01:29
gitte left01:29
VVSiz_ joined01:29
gitster The blame optimization is quite good, by the way ;-).01:29
crab gitte: anyway, i asked exactly what i meant to, and you guessed wrong. but good night.01:29
dramsay joined01:30
crab gitster: what blame optimisation?01:30
pasky yay01:31
gitster aya?01:31
yay?01:32
pasky finally caught hopefully all the corner cases of git mv submodule... though Junio was right to fear his hacks ;)01:32
gitster heh.01:32
tmz left01:32
pasky git rm and conflicts at the morning01:32
'nite guys01:32
garrin joined01:32
crab browses the todo looking for something interesting to do.01:35
pasky crab: I could use git-gui interface for submodules ;)01:37
rphillips left01:37
crab oh no, not more tcl.01:38
heh, "author refuses to respond to comments"01:39
elliottcable joined01:40
elliottc1ble left01:40
rdavila_ left01:41
elliottcable left01:43
Leefmc left01:43
hagabaka joined01:44
hagabaka if I push a commit and then later commit --amend it, is it possible to fix the remote?01:44
tmz joined01:45
jonshea joined01:45
VVSiz left01:46
carrus85 left01:46
elliottcable joined01:48
hagabaka or is it possible to get the "amendment" out as a separate commit so that I can push it?01:48
uau hagabaka: it is possible to destroy the existing commit on the remote and replace it, but that may cause problems for other people if they already fetched the original version01:48
hagabaka oh01:49
what about the second question?01:49
or, a way to warn me when I try to amend an already pushed commit01:50
whee left01:51
uau if you do "git reset <the state you pushed>" while you have the amended version checked out01:52
then you should have the nonamended version as branch state but amended version as working directory state01:53
and could then commit it01:53
Leefmc joined01:53
uau creating an extra commit moving from original version to amended one01:53
hagabaka state is a commit?01:54
but doesn't amend change the commit, so I can't find the state before amend?01:55
uau you should be able to find it in the reflog01:55
hagabaka ah01:55
uau or since you pushed it01:55
you should be able to see it as the status of the remote branch01:55
hagabaka oh01:55
is there a script to automate that?01:56
joydivider joined01:57
uau no (and what exactly could it automate? hard to pick the right commit to reset to automatically etc)01:57
crab why not revert instead of amend?01:57
oh, sorry. i misunderstood.01:58
paltman joined01:58
hagabaka something like, find amended commits to the last pushed commit and change them into regular commits01:59
lea_w left01:59
hagabaka preferably it would work even if there are more commits after the amend01:59
so i should be able to just look at remote HEAD and find it in the reflog, and look for amends starting from there...02:01
* the script should be able to ...02:01
uau you cannot have more than one such amended commit02:02
hagabaka why is that?02:03
uau since amend can only change the latest commit it's only possible to change the last commit you pushed02:03
and if you change the same commit multiple times the last amend just replaces the previous ones02:03
hagabaka does that mean the last amend is the sum of all the previous amends?02:03
digitalhobbit left02:03
crab but you can amend multiple commits at separate times.02:03
hagabaka are amend commits actually stored as separated commits in the "reflog"?02:04
uau crab: but at most the first one has been pushed before amending02:04
hagabaka: amend removes the last commit from the branch and replaces it with a new one02:04
if you keep replacing the commit the result doesn't really differ02:05
if doesn't matter if you replace A with B, then B with C02:05
or A directly with C02:05
hagabaka but the state before amends are stored?02:05
uau i'm not sure what you're asking about02:05
reflog stores where a particular branch, or your checkout-out HEAD, points to at various times02:06
Eridius|work left02:07
godlygeek joined02:07
geckosenator left02:07
piggybox joined02:08
hagabaka well, so would it work if a script finds the remote HEAD in reflog, then search starting from there and find the last amend to that commit, and convert that into a new commit?02:08
uau you'd at least need to give it a new commit message02:11
if instead of amended commit you'd have a separate fix commit02:11
hagabaka sure02:12
uau doing something with the same effect would probably be scriptable, but i doubt it would be worth it02:12
it shouldn't be that common02:12
hagabaka i've amended pushed commits a few times02:13
crab why?02:13
hagabaka because i pushed and forgot that I did02:13
crab if you're using amend regularly, you're doing something wrong.02:14
ciaranm or you like using git rebase -i to tidy up commits02:15
hagabaka it seems justified to me if I typo a line or forget to add a file before commiting02:15
litage joined02:15
timocratic left02:16
hagabaka and the script doesn't really encourage amending, it's just to make it easier when you amend after pushing02:16
(if it existed)02:16
johnw joined02:20
crab left02:24
uau if you have further commits after the amended one i think the following should work:02:24
git rebase -i pushed_branch02:25
piggybox_ left02:25
uau mark the first commit (which should be the amended version) as "edit"02:25
kelvie_work left02:25
uau when git tries to apply it it'll probably cause a conflict, but that doesn't matter02:25
then do "git checkout amended_commit_sha1 ."02:26
and "git commit" to create a fix commit02:26
then "git rebase --continue"02:26
jackdempsey dont' you want to be careful with rebasing something thats been pushed?02:30
uau the above was to undo an amend that was already accidentally made to a pushed branch02:32
kanru joined02:32
uau the "pushed_branch" in "git rebase -i pushed_branch" was meant to indicate the version that was actually pushed02:33
dramsay left02:39
hagabaka how do I name pushed_branch? is it the SHA in reflog?02:40
or the remote?02:40
uau remote02:41
david_koontz left02:41
hagabaka i used a local directory as test repository and pushed to it, then git rebase -i dir, and it says "fatal: Needed a single revision\nInvalid base"02:43
jackdempsey left02:43
uau i meant a tracked remote branch02:45
whose state you'd have in the local repository02:45
hagabaka how would I type it in the command line?02:45
uau if you don't have such (just did a push to an explicitly named repository) then you should give the SHA1 you pushed02:45
hagabaka oh02:45
then checkout that same SHA1?02:47
oh, the one after amend?02:48
gives me "fatal: you need to resolve your current index first"02:48
chieh joined02:49
uau you should have the branch you've worked on checked out when you start that02:50
CodeWar joined02:50
uau (including all the further commits you've done)02:50
that error is because you have uncommitted modifications in your working directory02:50
paltman_ joined02:52
jackdempsey joined02:53
paltman left02:56
aroben left02:56
hagabaka hmm02:57
this is weird, this time it keeps saying "everything up to date" when I push02:59
but diffing the "remote" dir shows difference, and git diff in the working directory is empty03:00
don't directories work the same way as other repositories?03:02
uau what about "git status"? if you have the modifications in working directory AND index they don't show up in plain "git diff"03:02
hagabaka ah, it says "not currently on any branch"03:03
not sure why that happened03:03
oh because I tried to checkout before03:03
ok, i started your steps with clean working directory this time, and still got fatal: you need to resolve your current index first03:07
chieh left03:08
Sonderblade left03:09
uau at which step?03:09
when you tried to execute the rebase -i?03:09
hagabaka "git checkout amended_commit_sha1 ."03:09
rebase -i got a conflict, i edited the file to remove the part between <<<< and =====03:10
should I make a commit there?03:11
uau that should not have been necessary03:11
hagabaka it gave me the same error before I did that too03:11
uau just ignore the confict message if any and write the checkout command03:11
i'm not sure why you'd get that error though03:11
cbreak left03:11
uau are you sure you included the last '.'?03:11
\ask_ left03:13
bfrog joined03:13
\ask_ joined03:13
hagabaka yeah03:15
tried again and still that03:15
cilly left03:15
uau which git version do you have?03:15
hagabaka 1.5.4.303:15
uau i don't get any warnings when using the "git checkout SHA1 file/directory" syntax whatever state the tree is in03:16
hagabaka oh03:16
...03:16
i didn't include the .03:16
johnw left03:18
JaapSuter joined03:18
JaapSuter Hello...03:18
In more traditional SCM systems, I can submit ("push") changes I've made to some files, without having to sync to the latest for other files. In Git, if the push isn't a fast forward, I need to sync, merge, and then push again.03:19
Correct?03:19
In what sense is this a workflow decision (i.e., it's the right thing to do), and in what sense a technical decision?03:20
Sub-modules provide a way around it, I suspect. But sub-module layout is very much an a-priori thing, whereas in Perforce I can be more fluid in what I do and do not want to sync.03:21
uau you mean you intentionally want to keep an old version of a part of the tree while working on another part? or what?03:22
JaapSuter Yes. Let's say I have a tree with two sub-directories, A and B.03:22
I work in B, and want to submit my changes.03:23
Meanwhile, other people have submitted stuff to A, things I don't want yet.03:23
Submodules and branching can help here I suspect. But the former requires a-priori planning (A and B need to be made submodules) and the latter won't work for people who fear branching.03:23
One may argue that people who fear branching shouldn't be using Git, but since I have both artists and programmers use it, there's only so much I can do.03:24
carrus85 joined03:24
JaapSuter I suspect I just need to build some clever branching porcelain around A and B to make this work.03:24
spearce JaapSuter: its a workflow decision in some respects, yes.03:25
git grew up as a source code system, not as a "source and doc and art and video and audio and ..." system.03:25
JaapSuter Spearce: for source-code that decision makes a lot of sense. After all, how are we supposed to know that disparate versions of A and B would work together without having tested them...03:25
Yeah, precisely.03:25
spearce generally in source code the whole thing needs to compile and link in some way, such that it all runs and does something that is perhaps useful.03:25
JaapSuter Bummer...03:26
spearce so the result of a merge really should be at least compile-tested, if not unit tested, integration tested, etc.03:26
JaapSuter Anybody else here trying to shove art and other things into Git or a Git-like system?03:26
spearce most recommendations have been to move the art people into a submodule, so they only have to merge the files they are responsible for.03:26
we did that at day-job (they aren't artists, but they aren't programmers either so i don't want them merging my source, but their assets are several million lines that we have to track and use).03:27
it took a little bit of user training, but i was mostly able to make them happy with git-gui and a few branches that they commit to, then push almost immediately.03:28
once they understood the idea of needing to fetch+merge (aka pull) the new changes before pushing again they said "i like that, i should see what everyone else has done before i make additional changes"03:28
of course their work isn't exactly isolated either, their stuff "compiles" and "links" too and some changes can cause that to fail.03:29
JaapSuter One scenario that doesn't work is for a tree with, say, a thousand art files that are all independent of each other (think video data). I want to publish my latest tweak to one video, without having to sync to all other changes that other users have made...03:29
madewokherd left03:30
uau is perforce like CVS where history is really per-file and larger projects are just weakly tied groups of files with individual histories?03:32
JaapSuter Yes.03:33
Fully agreed that a tree-based content versioning system is more suitable for code.03:33
But also trying to come up with a creative way to get the best of both models...03:33
spearce but yea, its not as well suited to say single file tracking. can you put each file on its own branch, and thus in its own tree, but park them all in the same repository anyway?03:34
or do you really need them all checked out at once?03:34
JaapSuter We may need them all at once. It's not so much a practical scenario I have on a specific project, but an investigation into Git's benefits for a large number of different projects.03:36
I'm trying to reason what would happen if I would allow a non-fastforward merge on the server. Mmm, I'll have to draw this out.03:37
elight left03:37
rtyler man, 10.1G VM, 3.3G resident03:37
EiNZTEiN joined03:37
rtyler this is fun to watch03:37
uau JaapSuter: if by that you mean allowing non-fastforward pushes from the clients03:39
spearce JaapSuter: the server side of git doesn't support such a concept. though you may be able to perform an uncontested merge on the server side, but i'm not immediately sure where you would plug that into the existing server side support without it being either a custom hack for your site in Git, or making the mailing list puke over the idea.03:39
JaapSuter uau: yes.03:39
uau the server won't do any "merge"03:39
spearce rtyler: what are you doing now? git repack -a -f ?03:39
uau a non-fastforward push just overwrites the previous state with the pushed one03:39
JaapSuter Ah, thanks guys.03:40
rtyler spearce: git-http-push03:40
*still*03:40
JaapSuter So ignoring for a moment that I'll have to endure people puking all over me, or go into Git and make some local hack (possibly through the use of hooks, so it's not "too" ugly), can anybody see a reason why it wouldn't work?03:40
I have: A- > B03:41
rtyler I'm watching the apache logs, full of MOVEs and PUTs03:41
JaapSuter Server has: A03:41
Correction, server has A -> C03:41
litage left03:41
JaapSuter I push, non-fastforward, and server does a merge. This creates a new commit D.03:41
I have: A -> B03:41
spearce JaapSuter: oh, it would work. its just the point where it has to go on the server side doesn't support this sort of "lets do work behind just updating a pointer".03:41
JaapSuter Server has: A -> C -> D03:42
Mmm, yes, that might work.03:42
spearce at some point though you have to fetch from the server, get D (the new merge of B and C) and update your working directory to it.03:43
JaapSuter I can verify that the merge the server does is always a merge that only involves changes on one side only (i.e., binary files of which one side is the same as it is on the base).03:43
Spearce: yes, but that's no different than Perforce.03:43
spearce otherwise you'll have hundreds of branches running forever because the clients keep making new commits on their side branches, forcing the server to merge.03:43
JaapSuter The real issue is that the server has a commit that never really existed anywhere on anybody's clients machine. That's not very elegant.03:43
uau JaapSuter: also if you want that to match the result of a git merge03:43
spearce rtyler: http-push has that much memory used itself? i know very little about how it is implemented, but clearly it doesn't do large trees like yours well.03:44
uau the server should have something like {{A->-C}, {A->B)}->D03:44
rtyler PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND03:44
14997 tyler 26 10 10.1g 3.1g 7996 S 50 80.9 108:54.59 git-http-push03:44
uau with two parents for the commit D03:44
rtyler spearce: clearly :p03:44
uau since it is a merge03:44
rtyler spearce: I've heard nobody wants to touch that code though ;)03:44
I've added abpout 2G of extra swap via swap files to make sure I have enough swap >_>03:45
spearce rtyler: do you want to touch it? you can have it. its yours for the taking. :-)03:45
JaapSuter uau -> Ooh, yeah. Two parents. Should have drawn the diagram that way. Thanks.03:45
rtomayko left03:45
rtyler spearce: I might take a gander at it, but I've not had time for open source code in....well, since I joined Slide ;)03:45
imyousuf joined03:45
spearce jgit may someday support push over webdav. but only if we can do it like the current sftp:// and amazon-s3:// where its only a few hundred lines total to plugin the vfs layer.03:45
rtyler it03:46
it'd be nice if git hooked into gnome-vfs03:46
JaapSuter Speaking of two parents. A more-than-two parent merge is still done as a sequence of three-way merges behind the curtains, right?03:46
rtyler ducks03:46
spearce but these dumb (non git aware anyway) protocols are annoying to work with for git clients because you can't do intelligent things in them.03:46
litage joined03:46
thiago http-push could use some CGIs to receive data and do something intelligent03:47
spearce JaapSuter: yes, its still a sequence of 3 way merges. but there can't be any conflicts. and n-way merges (where n > 2) aren't very common. we don't encourage them.03:47
thiago or Apache module, like SVN does03:47
rtyler apache modules are ick03:47
JaapSuter Given the rarity of > 3 octopus merges, would it really have been detrimental if the successive merges showed up explicitly in the history, instead of being collapsed?03:47
spearce thiago: yea, a CGI fronting for a modified git-receive-pack, or some optional routine in gitweb.cgi would be nice. john hawley wants to do something like that for the fetch side, but never has time among his other duties.03:47
thiago SOAP03:48
thiago runs03:48
spearce no. but its easier to say "git merge A B C D E" then to say "git merge A; git merge B, ..."03:48
rphillips joined03:48
uau JaapSuter: that's how git does the automatic merge result03:48
JaapSuter Afk, brb. Thanks!03:48
spearce SOAP so long as we can use <bit><value>true</value></bit> encoding. :-)03:48
uau but there is no intermediate tree state recorded03:48
imyousuf since we are at communication over http how about REST :)03:49
uau if you have a 8-way merge there are no intermediate states recorded anywhere to show03:49
the user might have created the merge result with his custom algorithm any way he wants03:50
CodeWar left03:51
ssb joined03:52
thiago imyousuf: for REST, you need CGI or Apache module03:54
imyousuf Why thiago?03:55
thiago I have no idea how CGIs operate with PUT and DELETE commands03:55
spearce you can send PUT/DELETE to a CGI. at least apache will certainly do it.03:55
ABCD joined03:55
thiago then it should work03:55
spearce PUT with a pack shouldn't be too hard to receive on the server side.03:55
imyousuf We could make the server component out of java servlets03:56
spearce what's a #@!(!@(!)!@ pita is GET to fetch a pack. :)03:56
thiago PROPFIND03:56
or send in the HTTP headers the meta-data that it needs to generate the pack03:56
imyousuf JGit can be used from the servlets to receive pack and unpack at the repo location03:57
spearce the problem is the handshake we do between the two sides during a fetch streams commits at each other until both sides realize they have found the common merge base.03:57
you can't do that sort of streaming in a single HTTP connection.03:57
but for push, typically the client knows everything.03:58
thiago multiple roundtrips?03:58
ben_h joined03:58
spearce yea, multiple round trips would be required for an efficient fetch.03:58
doable, but nobody has wanted to write the code. :)03:58
paltman_ left03:58
thiago how about an "inverted push"?03:58
spearce imyousuf: yup. most (if not all) of the support needed to do that is already available in jgit. just no servlet wrapper, or client support to speak it.03:58
thiago it will be less efficient, but it should work03:59
less roundtrips03:59
spearce right, you could do it in just the one request, at the expense of possibly fetching more than you needed to.03:59
thiago that's the price you pay for using HTTP :-)03:59
spearce though in practice if you are using standard style remotes with tracking branches in .git/refs/remotes/ you may actually get a fairly optimal pack anyway.03:59
imyousuf I would be grateful to contribute in the HTTP wrapper part :)04:00
spearce it would only be non-optimal in a star workflow, where Alice sends to Bob, Bob sends to Charley, and then Alice pulls from Charley.04:00
imyousuf I am experimenting with Jersey so I can put it to practice :)04:00
spearce you are experimenting an island in the uk?04:01
thiago wouldn't a normal push under those conditions also be slightly inefficient?04:01
imyousuf hehe04:01
spearce yes. which is why the "tell-me-more" push extension was recently added to c git.04:01
imyousuf thats not a star network rather sounds like token ring :)04:01
spearce i can't remember if it was a new feature in 1.5.6, or will be in 1.6.0.04:01
cehteh i just wanted to say that04:01
imyousuf and Jersey is the RI for JAX-RS (JSR-311) (jersey.dev.java.net)04:02
cehteh or daisy chain .. but when at tokenring .. can you pass a token around whuch optimize the packs?04:02
spearce only if the token is small enough and runs fast enough to not get stuck in the tubes. :)04:02
imyousuf :)04:03
cehteh thats the question .. what would such a token be in case of git?04:03
spearce half of tux with the git logo on his belly, with the roadrunner's legs spinning widely underneath?04:03
cehteh haha04:04
spearce err, wildly. i need to go back to code and not bs on irc. :)04:04
cehteh well better you do the bs here than in code :)04:04
cehteh things the inverted push could be a brillant idea ...04:05
cehteh k04:05
chrisb left04:05
spearce its entirely reasonable. its a better attempt at something optimal than current http fetch, and will work nearly optimally for _most_ users watching a single (or two) upstreams.04:06
which is where most http usage is i suspect.04:06
rtyler holy crap, it's done04:07
thiago rtyler: are you sure it just didn't crash? :-)04:07
rtyler no >_>04:08
ben_h left04:08
rtyler updating 'refs/heads/master'04:08
from 000000000000000000000000000000000000000004:08
to 590b10bf5d069b86a55516fa5322b3760678896204:08
sending 185628 objects04:08
done04:08
rtyler takes a deep breath04:08
ben_h joined04:08
rtyler time to try a clone04:08
JaapSuter Thanks everybody. Friendly people in here. Salut!04:08
thiago only 185k objects? Are you tracking very large files?04:08
JaapSuter left04:08
spearce rtyler: did it unpack 185k files as loose objects? or upload pack files?04:09
rtyler I'm assuming pack files04:09
spb_ joined04:09
EiNZTEiN left04:11
CodeWar joined04:12
ben_h left04:12
ben_h joined04:13
spb left04:13
asdfdsfsd joined04:13
spb_spb04:13
tiglionabbit joined04:20
tiglionabbit how do I commit the fact that I've deleted something if it shows up under "Changed but not updated: deleted:" ?04:20
pombreda joined04:20
irotas left04:20
Eridius tiglionabbit: git rm it04:20
or git add its directory04:21
tiglionabbit I tried both04:21
git add didn't do anything, git rm said I need to use the -r option04:21
do I really want to git rm -r?04:21
Eridius git rm -r is for deleting the contents of directories04:21
and git add *will* work if you add the enclosing directory (since that picks up all changes)04:21
tiglionabbit yeah, I don't want to do that04:21
thiago just do a git commit -a04:21
tiglionabbit huh. I wanted to save some of these changes for a later commit...04:22
Eridius so git rm it04:22
elliottcableec04:22
ajonat left04:22
Eridius you could say `git ls-files -d | xargs git rm`04:23
Leefmc left04:25
ajonat joined04:28
tjafk1 left04:30
tjafk1 joined04:30
CodeWar left04:31
agib joined04:32
sgrimm joined04:37
queso left04:44
ketralnis joined04:47
ben_h left04:50
ben_h joined04:51
tiglionabbit_ joined05:01
tiglionabbit_ is it possible to add an empty directory to a repository?05:02
it's a log directory, and I don't want to version control anything inside of it, but would be nice if it existed as the logger expects it to05:02
Eridius I recommend just dropping a .gitignore inside05:03
tiglionabbit_ empty one?05:04
Eridius yeah. or maybe one that matches the log files that your logger will make05:04
tiglionabbit_ I'd like it to match everything that could be in that directory then05:05
other than itself05:05
Eridius doesn't matter if it matches self05:06
gitignore is ignored for tracked files05:06
just put a * in it05:06
lu_zero joined05:06
ABCD left05:06
tiglionabbit_ gitignore only affects subdirectories?05:06
(or, siblings)05:07
Eridius yes. And files are matched against the patterns in the .gitignore as if the root was right there05:07
so a sibling foo will match /foo but not */foo05:07
thiago left05:07
Eridius actually maybe it will match */foo, since * can match nothing05:07
in any case, it matches /foo05:08
tiglionabbit_ cool05:08
marc_vwmvw05:09
krawek left05:10
floppyears joined05:10
jackdempsey why use / in that case05:11
why not just 'foo'05:11
any reason?05:11
Eridius '/foo' matches a sibling foo, 'foo' will match a file named foo in this directory or any subdirectories05:12
so 'foo' matches bar/foo, but '/foo' doesn't05:12
FunkeeMonk joined05:13
warthog9 joined05:14
joydivider left05:15
Ademan joined05:16
jackdempsey oh man, any subdirs huh05:19
didn't realize that05:19
i thought it was more that if you said blah.txt that would only match ./blah.txt not foo/bar/blah.txt05:19
basically recursive by nature it seems.....good to know, thx!05:19
Eridius if it has a / in it, it matches the whole path. if it doesn't, it matches just the filename05:21
jackdempsey yea. kinda cool05:21
so foo/* will only match it at ./foo05:22
if you had bar/foo/baz05:22
baz won't be ignored05:22
daaku joined05:26
neynenmo joined05:26
litage left05:33
sbahra left05:36
bryanray left05:42
bobesponja left05:43
Ademan left05:44
Ademan joined05:45
igorgue left05:50
neynenmo left05:51
sris joined05:55
paulttt joined05:58
BabelO joined05:59
asdfdsfsd left06:03
deavid joined06:13
nud joined06:15
charon joined06:15
sris left06:22
chieh joined06:24
markkalderon left06:28
morphir left06:28
jackdempseyjack_sleep06:33
pilifpilif|away06:35
jack_sleep left06:35
chieh left06:36
Ademan left06:39
Ademan joined06:40
reel_ joined06:41
crab joined06:43
crab did anything come of the proposal to make "git branch" able to switch branches too?06:44
icwiener joined06:46
icwiener left06:49
nud left06:51
Rustre joined06:51
spearce left06:52
hein2 joined06:52
Sho_ left06:52
hein2Sho_06:52
bfrog left06:55
Ademan left06:57
huyx joined06:58
jackdempsey joined07:00
VVSiz_VVSiz07:11
daaku left07:11
Ademan joined07:12
tiglionabbit__ joined07:12
jackdempsey left07:13
ben_h left07:17
SuttoL left07:21
nud joined07:21
barak joined07:22
FunkeeMonk left07:24
tiglionabbit_ left07:24
CodeOfficer left07:26
barak I've used git-cvsimport to create my own git repo to deal with a project that uses CVS. Pushing my mods back from my git repo to the upstream CVS repo using git-cvsexportcommit. Which works fine *unless* there is a keyword mismatch, i.e., some file in git has $Id: foo$ while in CVS keyword expansion somehow changed it to $Id: bar$. In this case git-cvsexportcommit barfs with a patch failure, and I end up using git07:26
-format-patch to generate a patch file and integrate it manually. BLECH! Any advise?07:26
sed s/advise/advice/07:27
Cope left07:30
cebewee barak: use -kk for the cvs checkout, -k for git-cvsimportcommit07:30
hm, we need an option for git-cvsexportcommit to do updates -kk, also07:31
otherwise, files added by cvsexportcommit wil not have -kk set. therefore i end up occasinally checking out a new cvs copy ...07:33
joevandyk_ joined07:34
brosner left07:35
Foriskak left07:39
barak Best would be if the patch-applier used by git-cvsexportcommit would do the dirty work of ignoring keyword mismatches for files that do not have keywords disabled in CVS. It seems like it is in the best position to solve the problem - everything else is hacking around to avoid it, and gets kind of brittle.07:40
So what I'm hoping is that there is an option to git-cvsexportcommit that does this, but it didn't make it into the documentation, so someone will tell me. Or if that fortuitous occurance does not come to pass, some other workaround. Best so far seems to be to use -kk and re-do my cvsimport to just avoid all keywords altogether. (There is a minor issue with this, in that the build system may barf with blank keywor07:42
ds, but that could be worked around.)07:42
pasky just as cebewee said?07:42
davidmccabe joined07:43
davidmccabe So I just got myself into a goofy situation:07:43
barak Yes exactly, that's what i meant.07:43
(THanks cebewee)07:43
davidmccabe At time t, two git repos have identical contents, but they are not related as far as git knows.07:43
tiglionabbit__ left07:44
davidmccabe Several commits are made to one of them. Can these commits be remade into the other?07:44
mithro left07:45
crab git-format-patch?07:46
sverrej left07:46
CodeWar joined07:46
mithro joined07:48
barak Yes, when this problem pops up I use git-format-patch and apply the failing patch manually and manually respolve the keyword expansion mismatch. Blech.07:48
Mishakun joined07:48
crab barak: sorry, i meant to answer davidmccabe07:48
davidmccabe Thanks crab.07:48
barak sorry.07:49
davidmccabe Thanks barak.07:49
Is there a way to stage or commit just one patch band from a file?07:50
joydivider joined07:51
pasky patch band?07:53
davidmccabe insertion or deletion.07:54
pasky sax solo for sigsegv!07:54
hmm, well, I'm wondering if the staging features could be used for this somehow07:55
but I'd just manually edit the patch ;)07:55
you might find it perhaps easier to throw both repos into two branch of a single repo and then rebase07:56
joevandyk joined07:59
huyx left07:59
Fullmoon joined08:01
fujin davidmccabe: can't you git-add -i now?08:05
interactive line by line08:06
or is that a to-be-added feature, i forget08:06
joevandyk_ left08:06
comp nope, it works already08:06
davidmccabe Super.08:07
Ok, one last question for the night:08:07
How do I revert a file back to how it is in another branch?08:07
other than checking out the branch, copying, etc.08:07
redondos joined08:08
davidmccabe I guess I should just checkout the branch, copy, etc.... :)08:10
crab git checkout branch -- /path/to/file ?08:11
davidmccabe Thanks anyways.08:13
davidmccabe left08:13
crab left08:13
sverrej joined08:14
Rustre hello there08:14
do i need to do anything specific to "work" on the latest changes?08:15
say, i did a "git clone <url>"08:15
now, i want to update my local "clone", so i did a "git pull"08:15
if i do a "git show" i can see changes08:15
and the latest commits and comments and everything08:16
but the changes weren't made to my local files it seems08:16
do i need to do anything special? maybe a "git checkout" or something else?08:16
bentob0x joined08:16
GarethAdams Rustre: what does gitk --all show you?08:17
Rustre i can't use gitk, i'm on a remote linux box (using ssh)08:17
from a windows machine :P08:17
so there's no X export :P08:18
earcar joined08:18
Rustre any other equivalent for this command not using gitk?08:20
barak Just tried "cvs checkout -kk" when avoided all keyword expansion, then "git-cvsimport -k", and guess what? The resulting files in git had keywords expanded! That was with git 1.4.4.4, I'm retrying now with git 1.5.6 ... same thing, keywords are expanded. Perhaps the -k switch on git-cvsimport is just plain busted? Or am I doing something wrong?08:20
Rustre when i do a "git checkout master" i can see four lines (the four latest file changes from the url i'm pulling) with a "M" in front08:22
does that mean that i need to stage or commit or whatever?08:22
jengelh Rustre: git-forest08:22
Rustre ?08:23
jengelh if you need the history but don't have gitk at hand08:23
Rustre oh ...08:23
jengelh M is modified08:24
Rustre but modified where?08:24
jengelh wc08:24
Rustre in my working tree? in the branch?08:24
jengelh It reminds you that you have modified these files.08:26
Rustre oh08:26
and if i want to "forget" those modifications?08:27
jengelh reset --hard08:27
Rustre and "squeeze" them with the latest changes from the url i'm pulling from?08:27
sverrej left08:27
Rustre oh... so "git pull" isn't actually updating my local copy08:27
jengelh don't use pull if you don't know what's behind it08:27
reel__ joined08:27
Rustre i know what is :D08:27
loupgaroublond joined08:28
Rustre i modified it on my windows machine, then pushed to the linux box08:28
tiglionabbit_ joined08:28
loupgaroublond hi08:28
Rustre now i'd like my changes to be applied on the linux box08:28
but not quite sure how i should do that08:28
loupgaroublond is there a way to only partially stage changes to git-stash, like i can do with git-add --interactive ?08:28
mtodd__ joined08:30
_zack joined08:30
macGerhard left08:30
mtodd_ left08:32
CodeWar left08:32
johnw joined08:33
fhobia joined08:34
Rustre is there a way to "pin" a file, and prevent it from being changed when pulling/reseting or whatever?08:42
i'm working on a web site, and i'd like one particular file (connect.php) to be unique to the web server, and of course, different than the one i'm working on (on the development computer)08:43
reel_ left08:43
Rustre but still, i'd like this file to be in the repository (so when i clone the repo on the web server, i just have to manually modify the connect.php file once and for all)08:43
johnw why not modify connect.php in a branch08:46
and then just use git-rebase to bring in new changes from the master08:46
Fullmoon left08:46
johnw I assume master will just contain the master template for connect.php08:46
Rustre i have no idea how and why to use git-rebase, but i'll check that straight away, thanks08:47
johnw if your branch contains only a single change (that to connect.php), then rebase moves that change forward in time, so that the branch only ever contains a single commit08:47
this is opposed to merging, which introduces "merge commits" every time you want to update to the latest code08:48
in other words, it's like a poor man's Stacked Git, or "quilt", if those mean anything to you08:48
Rustre (that doesn't mean anything to me, sorry :/)08:48
so, in other words08:48
the workflow would be :08:48
johnw in your branch, just type "git rebase master", to bring in changes from your master08:48
Rustre clone the repo from the development PC => work on the development PC => push to the webserver repo => connect on the webserver, and do a "git rebase master"08:49
is that all?08:49
johnw yep08:49
it's the mirror of "git merge master"08:50
but there are consequences to doing a rebase. one of the most important is: don't do it on any branch others can see08:50
_slacker_ joined08:50
johnw it's for private stuff that only you work with, in that case is perfectly legitimate08:50
Rustre ok08:50
i dont quite get why though08:50
mcella joined08:50
Rustre i'll read the man page on git rebase08:50
johnw because it rewrites history08:51
Rustre to understand what it means08:51
johnw i talk about it here: http://www.newartisans.com/blog_files/git.from.bottom.up.php08:51
one of the sections in that document is all about rebase vs. merge08:51
Rustre oh, thanks a lot, i'll read that then :D08:52
SuttoL joined08:54
markkalderon joined08:57
Rustre johnw: for my particular case, maybe i'd be better off adding a "excludesfile" in the ".git/config" file on the webserver once the clone has been done and the connect.php changed?08:57
johnw it might be much easier for you08:58
but i have not used that feature yet08:58
Rustre i'll give it a try then, thanks ;)08:58
ben`afk left08:59
paulttt left09:00
carrus85 left09:02
pasky uh09:03
excludesfile?09:03
Rustre yup09:03
there's something written about that in the "gitignore" man page09:03
pasky that's just .git/info/exclude, no?09:03
Rustre it's a bit different it seems09:03
it does the same thing (maybe)09:04
pasky why would you think it's a bit different?09:04
(either way, that's useless for you - read the description carefully word by word:)09:05
A `gitignore` file specifies intentionally untracked files that09:05
git should ignore.09:05
Rustre then i'm back to the start :/09:06
dammit09:06
pasky what's wrong with going with johnw's suggestion?09:06
Rustre probably nothing09:07
i still need to go into it (because i didn't get a thing about rebase)09:07
pasky rebase takes commits you have extra on your branch compared to another branch and rebases them to the other branch - that is, just grabs the other and recommits them on top of it09:08
and there's a shorthand to call git pull --rebase09:08
so, in the webserver repo, you just commit your local change09:08
and then keep doing git pull --rebase in the future09:08
loupgaroublond does it keep those changes labelled as being on your local branch?09:08
jdq joined09:09
pasky labelled?09:09
I don't understand09:09
jengelh meh09:09
gitweb is broken09:09
pasky the usual state09:09
Bombe Good morning.09:09
jengelh entering a commit id in the serach field won't get me anywhere09:09
pasky you put that to the url right away ;)09:09
loupgaroublond say, i have 3 patches on origin:master in a branch foo09:09
pasky hello bombe09:09
loupgaroublond: sorry, you lost me right there09:10
loupgaroublond: or, you mean branch foo is origin:master + 3 patches?09:10
loupgaroublond yes09:10
pasky origin/master, that is09:10
ok09:10
loupgaroublond so then someone pushes other changes to origin/master09:10
cilly joined09:10
koke joined09:11
loupgaroublond you need to pull of course, does rebase keep your three patches in a local branch or does it end up combining the two?09:11
pasky uh09:12
loupgaroublond but i have to run now09:12
pasky hm09:12
loupgaroublond i'll play with it later09:12
pasky ok09:12
carrus85 joined09:12
SuttoL left09:14
CodeWar joined09:19
ball_licker joined09:21
ball_licker I put on09:22
Fullmoon joined09:22
ball_licker East side, south side, west side....I put on09:22
jezzy baby09:22
jizzy09:23
pasky o.O09:23
pflanze left09:25
pflanze joined09:26
priidu joined09:27
ball_lickerlevel2tech09:28
Rustre johnw: mmm i read part of your pdf, but i'm still a bit lost :/09:28
njal joined09:30
mstormo joined09:31
pombreda1 joined09:31
SuttoL joined09:31
markkalderon left09:33
johnw rebase carries forward a set of commits as if it were a series of patches09:33
rewriting the history each time to make it appear as though those patches/commits had just been applied against the new HEAD09:33
you know, it's the kind of thing where you can say it a hundred times, but until you try it out, it won't ever make complete sense09:33
Bombe :)09:35
level2techlevel2tech_09:35
cardioid joined09:36
johnw left09:36
level2tech_level2tech09:36
level2tech left09:36
charon_ joined09:41
charon left09:41
charon_charon09:41
pombreda left09:45
chris2 joined09:52
joydivider left09:54
pombreda1 left09:54
_zack left09:59
pombreda joined09:59
_zack joined09:59
_zack left10:00
d0k joined10:01
SRabbelier joined10:01
_zack joined10:03
markkalderon joined10:07
dramsay joined10:09
jengelh git clone git://git.kernel.org/pub/scm/linux/kernel/torvalds/linux-2.6.git10:09
fatal: The remote end hung up unexpectedly10:09
something I dunno about?10:09
ah a missing git :p10:09
UukGoblin is there some nice way to cherry-pick only a few changes from a commit?10:12
wildfire UukGoblin, cherry-pick that commit as normal, then git reset --hard HEAD^ (i.e. go to the prior change)10:13
UukGoblin, then 'git add -i' might be what you are after10:13
UukGoblin wildfire, oh, cool, will check it out, thanks10:13
loupgaroublond don't you mean reset --soft ?10:14
--hard will modify the working tree10:14
UukGoblin yeah, probably10:14
gitsky but --soft on the other hand will touch only your HEAD, no?10:15
so just git reset HEAD^ (or git reset --mixed HEAD^, if you want) should work best ;)10:16
CodeWar left10:16
wildfire loupgaroublond, gitsky, yes, of course - my bad10:16
gitsky and perhaps a simpler way is to10:16
UukGoblin I get the idea, get the changes into the working tree and then add them interactively to index10:16
gitsky git checkout commitid:filename10:17
instead of cherry-pick + reset10:17
er, make that s/:/ /10:17
UukGoblin hmmm, that sounds nice...10:17
gitsky oh no10:17
it will modify the index too -.-10:17
UukGoblin ah, yes10:17
gitsky so git cat-file blob commitid:filename >filename, I guess10:18
wildfire perhaps a 'git-cherry-pick -n <commitid>' solves the issue better?10:18
no need to reset10:19
UukGoblin wildfire, git-cherry-pick -n puts the change into index...10:19
wildfire ahh, the man page isn't clear on that10:19
UukGoblin cating the file seems ok, I just wonder what I'd do if I only wanted to take some of the changes to a file ;-)10:20
gitsky wait10:20
that's exactly what are we trying to solve10:21
modifying only your working tree so that you can git add -i10:21
and select what you want to put into the index10:21
UukGoblin correct10:21
gitsky if you are after the whole file, the git checkout commitid filename is the simplest way10:21
UukGoblin you mean git cat-file10:22
gitsky no10:22
the point is that git add -i interactively adds files from _working tree_ to _index_10:22
UukGoblin ah, because if I have the whole file I don't mind it will end up in index10:22
gitsky so that you can put only bits of the file into the index10:23
yes, exactly10:23
if you just want the whole file, might as well just throw it into the index right away10:23
UukGoblin yup10:23
gitsky anyway, at least we discovered that git-cherry-pick documentation is apparently buggy10:24
(did you test it, so that you know it puts the change into index?)10:24
the code looks like it does :(10:24
UukGoblin yeah, I just tried doing that, and according to gitk the change ended up in my index10:24
gitsky hmm, it pretty much has to, since cherry-pick in fact does a three-way merge10:25
I'll send a patch10:25
UukGoblin cool, thanks10:25
hm, actually, it seems that git checkout [<treeish>] <paths> also checks out into index, not only working tree10:28
the docs says "It updates the named paths in the working tree from the index file", I guess that can mean that it updates both10:28
lea_w joined10:29
thommey joined10:30
gitsky 12:13 < gitsky> it will modify the index too -.-10:30
that was my point10:30
that's why you need to use git cat-file if you want to modify only the working tree10:31
UukGoblin yes, I was just talking about the manpage for that10:31
but I think it's better than cherry-pick10:32
whee joined10:32
UukGoblin and it says that it actually does git-checkout-index, so you can figure out things from that10:32
gitsky <tree-ish> argument can be10:33
used to specify a specific tree-ish (i.e. commit, tag or tree)10:33
to update the index for the given paths before updating the10:33
working tree.10:33
UukGoblin yup10:33
gitsky that's the "commitid" in my call10:33
UukGoblin it's okay then10:33
gitsky so it's hopefully fairly clear10:33
cbreak joined10:35
fhobia left10:37
telmich the idea behind gitosis is to have just one shell account, but that has full shell access on the system, correct?10:37
mtkd joined10:44
cbreak left10:50
cbreak joined10:50
powr-toc joined10:52
harinath joined10:54
reel__ left10:54
reel__ joined10:54
mstormo left10:54
GeckoPie|SleepGeckoPie10:55
mstormo joined10:57
dramsay left11:06
gitsky telmich: i don't think so...? i thought gitosis provided its own shell?11:08
i never used it, though11:08
Fullmoon left11:12
reel__ left11:13
njal left11:13
reel__ joined11:14
UukGoblin git's awesome. I don't know how I could have lived without it ;-)11:14
I just split a line of development into two branches :-)11:14
bit by bit :-)11:14
imyousuf left11:15
njal joined11:15
rlaing joined11:24
telmich gitsky: I read a howto that uses /bin/sh11:24
gitsky: http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way11:25
rlaing hi. question: if i modify .gitignore after a first commit, how to update index to delete files now in ignore?11:25
telmich rlaing: do it manually11:26
rlaing: git-rm <files>11:26
rlaing git-update-index --delete filename?11:26
telmich: i don't want to remove file from working copy11:26
only from index11:26
telmich rlaing: git-rm --cached11:27
rlaing ok, thank you11:27
koke left11:28
rlaing left11:28
Fullmoon joined11:31
Leefmc joined11:33
janm joined11:40
ndim Oh my. How did I survive without "git rebase -i"?11:41
cbreak I don't even use branches... :)11:41
telmich ndim: hmm, I really tend to never use rebase, I must confess11:42
spb i tend to use rebase before push, just to avoid merges11:43
but that's about it11:43
ndim I find it awfully useful for developing private feature branches and nicely formatting them before pushing.11:43
telmich ndim: hmm, can you describle your workflow? as so many people seem to use it, I may want to have a deeper look at it11:44
ndim telmich: I have a master branch and add some feature consisting of a bunch of commits11:45
telmich: Then I create a feature-foo branch, and start committing commits A, B, C, D, E.11:46
telmich: Now I find that I forgot to cross a t in A, or something. I commit that now just like any patch.11:47
telmich: Now (or later), I can then "git rebase -i", and pick A, squash A-fix into it, and pick B,C,D,E after that.11:47
In case E happens to basically be a fix to B, I can squash E and B into one commit as well, while I am at it.11:48
SuttoL_ joined11:49
ndim Results in less clutter and thus better readability after publication.11:49
telmich ndim: ahh, ok11:49
hmpf, must go.. ndim: sounds interesting, will commen on it later11:50
ndim telmich: When the feature-foo branch is OK, I will then push those commits to the public master branch11:50
raz left11:53
raz joined11:53
Leefmc left11:55
Aikawa joined12:01
twicthy joined12:03
twicthy Hi. I got: permission denied (publickey). The remote end hung up unexpecdedly.. when I tried an: git push origin master to github.com12:05
SRabbelier gitsky: do you change your nick every 2 days or what? :P12:06
SuttoL left12:06
emachado joined12:07
gitsky do you have to pick on me three times every day or what? :P12:08
;)12:08
actually my nick on freenode is usually quite stable12:08
but just was reading some very old #git logs tonight and got nostalgic ;)12:08
SRabbelier lol :D12:09
pdherbemont joined12:12
X-Blade left12:14
Fullmoon left12:14
gerke joined12:17
lorandi joined12:17
kukks joined12:18
X-Blade joined12:19
sbahra joined12:19
Yuuhi joined12:21
sbahra left12:22
koke joined12:22
MarcWeber joined12:22
Rustre is there a way to ignore changes to a file that have previously been tracked?12:24
[raz] joined12:24
Xyri0 joined12:24
sbahra joined12:25
Rustre i'm having automatically generated files, and it seems i can't ignore them through the .gitignore file (they still show up as "to stage")12:25
and i'm guessing it's because i've added them previously12:25
MarcWeber Is there already a script which helps keeping a merge up to date? Say you have 3 branches not differing much. Now I'd like to create another branch merging them all. And whenever I add a patch to one of those 3 branches I'd like to merge those branches again. Or is there a better workflow?12:25
Rustre should i use git-rm ?12:25
dduncan joined12:25
MarcWeber Rustre: There is another command which let's you only remove them from index (thus beein something like undo of git-add).. but I can't recall it..12:26
Using git-gui it's easy to do as well12:26
Rustre how?12:26
i'm using git-gui, but couldn't spot this one12:26
[raz] hmm i'm confused12:27
MarcWeber Rustre: Just click on the icon on the left ni the lower window12:27
[raz] i just pushed from a shallow clone without problems.12:27
has the restriction (no push from shallow copy) been lifted recently?12:28
Rustre MarcWeber: which "icon on the left" ? i have no icons at all :P12:28
what version are you talking about? maybe i'm using a different one?12:28
gitsky [raz]: there was any restriction at all?12:28
MarcWeber git-gui version 0.10.212:29
gitsky I wouldn't see any reason for a restriction at all as long as you have all the necessary objects to determine what to push12:29
[raz] gitsky, the man-page says: A shallow repository has a number of limitations (you cannot clone or fetch from it, nor push from nor into it)12:29
Rustre i'm using 0.10.1, maybe that's why12:29
dduncan left12:29
Rustre i'll give it a go at upgrading my package then (if possible, i'm using msys git)12:29
ben_h joined12:30
raz left12:30
[raz]raz12:30
gitte joined12:30
pygi left12:30
raz gitsky, well, i'm happy that it works. just a bit surprised12:30
pygi joined12:30
MarcWeber Rustre: http://mawercer.de/test.jpg12:30
Rustre url isn't working, is it?12:31
MarcWeber no it's not sry12:31
Rustre can't find mawercer.de12:31
MarcWeber I've stopped apache12:31
EmilMedve joined12:31
MarcWeber Rustre: retry12:31
gitsky what manpage says that?12:31
i see that only in the release notes for 1.5.012:31
where it's just said that it is not *expdeected* to work, and the release notes are pretty old stuff12:31
Rustre yup12:31
i definitely don't have the same gui12:31
oh, wait MarcWeber, i'm getting what you're talking about12:32
i don't want to "unstage" the file12:32
i'd like to ignore it12:32
and not track it anymore12:32
MarcWeber Then echo a >> .gitignore should do the trick12:32
foca_ joined12:33
telmich re12:33
MarcWeber Rustre: Unstage it once, then it will not appear again12:33
lea_w1 joined12:33
lea_w left12:33
Rustre well, it will12:33
of course12:33
Xyrio left12:34
lea_w1lea_w12:34
Xyri0Xyrio12:34
Rustre if you unstage it, it just means "i modified it, but i'm not commiting it (yet)"12:34
but it'll still displayed as "unstaged changes"12:34
telmich ndim: ahh, ok.. I push all stuff out to the master branch, because I don't care if other people see my mistakes12:34
MarcWeber Rustre: Your problem is that .gitignore is ignored, right?12:34
Rustre MarcWeber: and the .gitignore doesn't seem to work for files that i've already commited previously12:34
yup12:34
it's not ignore, it's just not working for THAT file (which is in the repository, i'm guessing that's why)12:35
i guess i should use git-rm12:35
MarcWeber Then I can't help you. After adding a to .ignore git-gui still showd the file as staged. After unstaging it it vanished.12:35
git-rm removes the whole filed, doesn't it?12:35
telmich Rustre: sure, if it is in the index, gitignore will not ignore it12:35
Rustre: just do git-rm --cached <file>12:36
Rustre oh ok telmich12:36
that's what i should do then, thanks a lot MarcWeber and telmich12:36
telmich Rustre: no problem, have fun with git ;-)12:36
Arc_ joined12:37
MarcWeber I've missed --cached this time.. Will try to remember it12:38
Rustre i'm having fun for some time now already telmich12:38
it's just that i'm learning how to use it a bit more each day ;)12:38
(sometimes in pain :D)12:38
sbahra left12:39
deavidsedice joined12:39
ndim telmich: Seeing mistakes is one aspect having to read two patches where the second one removes 80% of the first one is just wasting time, though.12:42
sbahra joined12:42
Rustre that's strange : i'm trying to push my changes to the "webserver repository", and i have a rejected : "master -> master (non-fast forward)"12:43
how come master to master isn't fast forward?12:44
telmich ndim: that's true, but I normally just do "git-diff mybranch other/branch" and I do not care about the history12:44
Rustre: did you use git-rebase?12:44
Rustre yup12:45
DAddYE joined12:45
Rustre not sure i did it correctly though12:45
DAddYE Hello big world12:45
any can help me? I need to make an hooks that send to specific emails the last commit message, any can help me to do this?12:45
Rustre i had a strange message (something like "needed single ref" or something like that)12:45
still, if i connect via ssh to the linux box (the webserver) and do a git-pull, it works perfect (it seems at least)12:46
twicthy left12:48
Arc left12:48
foca left12:50
thiago joined12:51
dramsay joined12:51
Lemurnomicon anyone have any pointers / experience / "ZOMGDONTDOIT" tales on using git to keep a version history of executables?12:56
Rustre i think having rebased my repository is now preventing me from doing a few things (for example "git-rm" on a file i don't want to track anymore)12:56
DAddYE any can help me? I need to make an hooks that send to specific emails the last commit message, any can help me to do this?12:59
tiglionabbit_ left12:59
dramsay left13:01
dramsay joined13:01
heycarsten left13:03
ndim DAddYE: I'd start with grep .git/hooks/*13:04
DAddYE: I'd start with "grep mail .git/hooks/*"13:04
DAddYE ???13:05
ndim DAddYE: There is some mail hook in there13:05
DAddYE mmm13:05
LiamH joined13:06
ndim Rustre: When I am confused (and the repo has less than 10000 commits), "gitk --all" usually gives me back the orientation.13:07
Rustre can't use gitk, it's a remote linuxbox :s13:08
DAddYE ndim: there is nothing usefull for me13:08
Pistos joined13:08
Pistos I tried to STW for this, but I couldn't find it. I'd like to retrieve the last copy of a file before it was git rm'ed many commits ago. How to?13:09
I don't mean that I just locally rm'ed it and haven't checked it in, or any case like that.13:09
gerke left13:09
FunkeeMonk joined13:09
pombreda1 joined13:09
Pistos Assume I don't have the SHA1 of the commit that rmed the file.13:09
gitte git show $(git log -1 --pretty=%H -- <file>)^:<file>13:10
Pistos gitte: Thanks; will try.13:10
gitsky lol, git show accepts this syntax? :)13:11
DAddYE Any know if there is an hooks for send only commit message to some email address????13:11
Any know if there is an hook for send only commit message to some email address????13:11
Pistos fatal: invalid --pretty format: %H13:11
gitsky these new user-friendly git tools...13:11
we didn't have those at my time!13:11
gitte gitsky: You mean the $() thing? No, that is bash, as you surely know...13:11
gitsky gitte: no, the :-form13:11
gitte gitsky: yep, <treeish>:<path>.13:12
Pistos: sorry, forgot: "--pretty=format:%H"13:12
Pistos Thanks. :)13:12
gitsky so, git show can show other objects than commits13:12
that's actually the news for me13:12
gitte gitsky: yes, we can13:12
;-)13:13
lea_w left13:13
Pistos gitte: Stupendous. That worked marvelously, minus me having to specify the full path relative to the repo root.13:13
Next question: How is a git noob supposed to parse, understand or even remember a command like that? ;)13:14
brosner joined13:14
ndim Pistos: "git log -1 -- <file>" gives you the latest log entry touching <file>13:14
Pistos Okay.13:15
ndim And that should be the commit which removed the file.13:15
Pistos reads git log manpage.13:15
ndim --pretty=%H probably just prints the commit hash, then append a ^ to get the parent commit, i.e. the last commit where <file> existed.13:15
schacon joined13:16
ndim Then call "git show" on it.13:16
gitte Pistos: a noob is supposed to use "git log -- <file>", note the name, and then "git show" its parent's <file>.13:16
Pistos ndim: Great explanation. I grok.13:16
gitte ndim: except it is --pretty=format:%H13:16
jengelh except you could just use git-rev-parse :p13:16
ndim Pistos: I had no idea of that command, but that is how I would do it :)13:16
Pistos jengelh: Do tell. I was just at that man page, and couldn't easily surmise how to approach my problem with it.13:17
pombreda left13:17
CareBear\ joined13:17
CareBear\ hello friends13:18
gitte jengelh: except rev-parse is not meant for _humans_!!!13:18
Pistos So I pass "SHA1:filepath" to git show to make it give me the file for that snapshot?13:18
wereHamster joined13:18
gitte jengelh: except rev-parse does not find the commit which last touched the file!!!13:18
wereHamster does git export any functions that could be used from a C application?13:18
gitte wereHamster: yes.13:19
wereHamster that would the the 'plumbing' ..13:19
Pistos I'd be shocked if it couldn't. :)13:19
wereHamster is there a documentation?13:19
jengelh heh13:19
gitte wereHamster: no.13:20
CareBear\ I used git-clone, made changes in the clone, committed, pushed, but then the origin (master?) thinks the reverse of those changes are modifications to HEAD. I don't want that.13:20
jengelh gitte: in that case, git-rev-list13:20
gitte jengelh: sorry, but you are the third guy in the last few days suggesting using plumbing to users. Unsurprisingly, users find Git "complicated".13:20
Pistos CareBear\: Non-bare repo?13:20
CareBear\ What did I do wrong - or what have I not done yet?13:20
wereHamster gitte: intentionally or did noone write it yet?13:20
garrin left13:20
gitte jengelh: same problem!!!!!!13:21
jengelh git-rev-list HEAD Makefile | head -n113:21
gitte wereHamster: patches welcome.13:21
Pistos CareBear\: I think it is a git sin to push to a "clothed" repo.13:21
jengelh it may be plumbing, but it's better than trying to grep in human output13:21
Pistos CareBear\: If the place you pushed to is a WC of someone, that place should pull from you instead.13:21
gitte jengelh: stop making it complicated for users.13:21
CareBear\ Pistos : The master is bare, ie. just created with git init, added, committed, made some changes, committed again then the clone13:21
gitte jengelh: puhlease.13:21
Pistos But I'm just a git noob. :)13:21
wereHamster gitte: I'm interested in removing all the system() from http://pastey.net/9142113:21
jengelh gitte: it's the same reason you don't do rm -f $(ls *.jpg)13:21
Pistos CareBear\: Okay, then I dunno. :)13:21
CareBear\ Pistos : And both are under my full control13:22
Pistos : Are push/pull completely analogous?13:22
jengelh push/pull are not analogous.13:22
gitte jengelh: no, it's not. You are making it harder for other people to sell Git as "easy". Because you make it "uneasy".13:22
jengelh you wrote the tool.13:22
Pistos Who wrote the what?13:23
gitte jengelh: git show? No.13:23
jengelh never mind, I always confuse gitte and gitster13:23
CareBear\ Ok. So my error was to use push from the clone instead of pull in the master.13:23
jengelh gitte: anyway, see http://jengelh.medozas.de/articles/recurring-errors-sh.php13:23
gitte wereHamster: you need to read up on git first... you probably want to use read-tree anyway, and script what you want to do, rather than have it in a program.13:24
jengelh: no time.13:24
jengelh of course... who would have thought.13:24
CareBear\ jengelh/Pistos : Can I fix that? :)13:24
jengelh CareBear\: send a bug report?13:24
gitte jengelh: hey, you suggested things to users which are not meant for them.13:24
jengelh git-log is not exactly fit for grepping.13:25
Pistos CareBear\: git stat should give instructions on how to un(rm|do|mv|cache|index) stuff.13:25
CareBear\ jengelh : I don't think it's a bug though? The bug was me not understanding git push.13:25
jengelh CareBear\: i would still consider it as a bug. since push =transfer it, but pull=transfer+merge13:25
paltman joined13:26
gitte jengelh: if you use it incorrectly, right.13:26
jengelh: anyway, your link is nice, will have a look later.13:26
jengelh: and this discussion we are having is pointless: you should know that you are not exactly helpful when suggesting the use of rev-parse or rev-list.13:26
CareBear\ Pistos : git reset HEAD doesn't work so well. :\ master doesn't include the commit from the clone in HEAD13:26
gitte jengelh: and I really have no time for this... I should learn to let things like this slip when I have to do proper work.13:27
wereHamster gitte: well, the C program uses lua scripts in its core. I already thought about spawning the git portion in a shell script or so, but I think it would be best if I could do it all inside C13:27
Pistos CareBear\: I've never found an instance where the git stat instructions failed to get me back to a clean state...13:27
CareBear\ Pistos : clean, mh, but I want to merge :)13:27
Pistos CareBear\: Clean first, then pull. No? :)13:28
CareBear\ git-merge doesn't play, but I will throw a few more commit ids at it.13:28
Pistos : ah yes, that's an idea.13:28
but no..13:28
after git reset HEAD, git diff shows the reverse of the clone commit :\13:29
git diff --cached is correct though.13:29
wereHamster gitte: also, I don't see how read-tree could help here. But then again, I don't know much about read-tree, I've never used it myself13:29
litage joined13:30
gitte wereHamster: read-tree can write to somewhere else. IIRC it is the --prefix option, but I am probably wrong.13:30
CareBear\ git pull clone says Already up-to-date.13:30
Pistos CareBear\: Once you have everything unstaged, you can just git checkout ., I think.13:30
wereHamster gitte: you mean I could replace the git-archive | tar -x with read-tree?13:31
Pistos That should get rid of all unstaged changes.13:31
(assuming that's what you want)13:31
DAddYE sorry with git how I can get the last commit message?????????13:31
CareBear\ git log -113:32
Pistos : ok, it looks almost right now.13:33
Pistos .. but? :)13:33
CareBear\ Pistos : Fun thing is, I also had staged changes in master.13:33
shaftyy joined13:33
Pistos CareBear\: Ugh13:33
CareBear\ Pistos : I still see them in git diff --cached13:33
but not in git diff13:33
Pistos CareBear\: Phew... I thought you lost them. :P13:34
Okay, so... isn't it better to merge only on a pristine WC? :P13:34
on/into13:34
CareBear\ (I was careful not to reset the files that were changed in master)13:34
why doesn't the changes show up in git diff, but only in --cached ?13:35
ndim Because you have already staged them.13:36
CareBear\ ndim : aha!13:36
and unstaging would be git-reset --soft13:37
hm needed a single revision13:37
ndim no idea :)13:37
queso joined13:37
vbabiy joined13:37
CareBear\ Sorry I seem so confused, but git is so powerful that I'm not sure how to best wield it for my purposes. :)13:38
ndim I know the feeling, but what you have told us above was too complicated for me to grasp, so I'll leave that to other people to solve :)13:39
CareBear\ git checkout . was the key piece of the puzzle.13:41
I pushed changes to the master, but not the master's working copy.13:42
Fullmoon joined13:42
CareBear\ Pistos : Thanks for the help! :)13:42
SuttoL_ left13:43
mountie joined13:43
pflanze left13:43
gitsky just fixed totally broken styling in IE6 by inserting <span style="float: right"></span> at one precise spot of a page, yay!13:43
gitte gitsky: you fixed IE6? That's great. Does M$ give you any money for it? No? Then you just donated something to them...13:45
CareBear\ IE6 is fun.13:45
gitte wereHamster: exactly13:45
CareBear\ no wait.13:45
gitsky gitte: corporate environment forcing IE6 on us13:46
gitte: tough to do anything with that13:46
or about that13:46
gitte remembers gitsky having a suse.cz address...13:46
gitsky I'm on a break in another company in switzerland, working on a git project13:47
but I still need to figure out how much can I talk about it13:47
bryanray joined13:48
CareBear\ the keyword situation13:48
gitte so loves NDAs13:48
gitte cuddles NDAs13:48
warlock_mza joined13:49
schacon left13:51
juanjoc joined13:51
Aphelion joined13:51
Aphelion any reason for a tracked branch to push somewhere unexpected when using just 'git push'?13:52
carrus85 left13:53
Pistos CareBear\: My pleasure. One noob to another. :)13:56
Anyway, I'm out [of this channel].13:56
Sho_ left13:56
Pistos left13:57
Sho_ joined13:59
gitte Aphelion: tracked branches are not pushed.13:59
Aphelion: but you probably mean a local forked branch with a _different_ name, right?13:59
Aphelion eh?13:59
nope, i mean a local forked branch and it has the same name14:00
i take it that's a problem?14:00
gitte Well, I guess that you have other local branches that are present at the remote site.14:00
But that is too much guessing; I should stop guessing without more information.14:00
Aphelion we're using an svn-style setup with multiple people having ssh access and git group access to a bare repository.14:01
Aphelion checked out a personal branch from origin to local, same name given to -b. git checkout --track -b name origin/name14:02
Aphelion git push, with no additional parameters, attempted to push to a different remote branch on the same remote (origin)14:03
it failed due to not being a fast-forward, which is good, but i have no idea why that would happen14:03
Tv Aphelion: have you read .git/config ?14:04
Aphelion double-checkin it14:05
brosner left14:06
Aphelion Tv - the branch it tried to push to is higher in the config file, if that matters. the entry for the local branch has a remote config entry and a merge config entry.14:07
blowery joined14:07
deavidsedice left14:08
heycarsten joined14:09
zewerson left14:10
bryanl joined14:11
dmq is git-format-patch what i would use to take a change history for a file and push it into a different repository?14:13
Tv dmq: don't call it a push, but that is one way to achieve that goal14:15
dmq: most git users would 1) avoid needing to extract history of an individual file 2) use fetch+merge14:15
lorandi left14:15
lorandi joined14:15
dmq well i wrote this script in one repository, and it really should live in another. these are totally unrelated repositories.14:17
so i was hoping there was an easy way to push just the changes to that file into a different repo.14:18
Cacheaway joined14:18
Tv dmq: git tracks whole trees; you could make a branch, then rewrite its history fully to remove all the other files from every commit; that would give you a history with just that single file14:19
raz dmq, i could imagine a very ugly script to automatically checkout each revision in order and commit that to the new repo.. but it's a kludge14:19
aroben joined14:19
dmq yeah i was hoping it would be possible to do it with git-format-patch but it doesnt seem to have a way to filter by files.14:20
pflanze joined14:20
gebi is git 1.5.4 useable for gitosis?14:20
aroben left14:20
gebi just gitosis (nothing more)14:20
raz gebi, why should it not be?14:20
aroben joined14:21
dmq Tv: it seems like git log -p can do it.14:22
gebi raz: it's not that good for client side (slow (unrelated) pull, git-svn, ...)14:23
SuttoL joined14:23
dmq but can i pipe that into git-am.. i wonder...14:23
raz gebi, ok different question. why do you want to use that specific version then?14:23
gebi fedora 8 on server14:23
raz gebi, hmm ok i see. sorry i don't know an answer, just made me curious. i'd suggest to compile a stable version.14:25
Tv gebi: i have 1.5.4.3 on serverside myself14:26
ndim dmq: git filter-branch14:30
dwavedwave|w14:30
dmq ndim?14:31
gebi Tv: ah ok, thx :)14:31
ndim dmq: Create a new branch from HEAD, then do the filter-branch thing on that new branch, If you like the result, push that new branch to a different (possibly empty) repository.14:32
dmq: filter-branch can select just the commits affecting "this script".14:32
dmq: Do create a test branch to do that. Do check with "gitk --all" that it did what you expected.14:33
chrisb joined14:34
dmq ok.14:35
git-filter-branch has a frightening doc.14:35
and why do i see lots of .ft C things in it?14:35
pygi cnk, poke14:36
bentob0x left14:37
jonshea left14:38
G_SabinoMullane joined14:40
dmq uh ndim, could you suggest what filter-branch would look like?14:40
bloweryben`afk14:42
cebewee_ joined14:46
cebewee_ hm, is show-ref the right plumbing command to get a list of all branches?14:46
rdavila joined14:48
ndim dmq: the man page has the exact example you are looking for14:48
jackdempsey joined14:49
ndim dmq: Oh. Sorry. The man page only has it in reverse.14:49
fade-in joined14:49
dmq removing a filename you mean14:49
ndim Yupp.14:49
And you want "removing all filenames but the one", right?14:50
dmq yes14:50
i think i can use --subdirectory-filter14:50
since my script is the only thing in the subdirectory its in.14:50
but so far i hasnt worked as i would expect.14:50
CareBear\ Can git-archive run twice internally?14:51
ckm joined14:51
ndim Sorry bout that. I don't have much experience with filter-branch, but it worked nicely for me in a different case the other day.14:51
CareBear\ I want a zip with two copies of my tree, with different prefixes.14:51
brosner joined14:52
thiago CareBear\: concatenate the two zips together.14:52
or create a fake tree and run git archive on it14:53
CareBear\ thiago : does that really work also for zip?14:53
thiago no, zips aren't cat-able. By concatenate, I meant with a theoretical tool that combines them together.14:53
CareBear\ ya, no fun. :p14:53
dmq hmm i dont get it.14:53
CareBear\ not as much fun as if git-archive could do it anyway. :)14:54
dmq i did git-filter-branch --subdirectory-filter=./my/path14:54
and i end up with a branch that only contains ./my/path but the files within are gone.14:54
CareBear\ thiago : thanks for clearing it up!14:54
ok, something easy.14:55
hm maybe I already know the answer.14:56
*testing*14:56
rdavila left14:56
CareBear\ yep!14:56
thorny_sun joined14:57
thiago what?14:58
jackdempsey left14:58
Cacheaway is there a problem running git commands from within hooks/post-update? I am trying to do cd ~/public_html ; git pull inside post-update, and I get "fatal: Not a git repository: '.'" when I push. I even added a pwd in the script to make sure I was getting to the right spot, i am. If i run the script manually it works, but it doens't work when invoked by git14:58
CareBear\ want to add new things to an old commit14:58
=>git reset <commit before>14:58
thorny_sun glorious git gurus! how do tag all my added/rm-ed files to be commited on next commit without explicitly having to git rm / git add everything?14:58
CareBear\ thiago : will the current HEAD commit cease to exist?14:59
ciaranm thorny_sun: add is easy. you just git add .14:59
thorny_sun but i have a lot of rm-ed stuff as well14:59
ketralnis left14:59
thorny_sun ciaranm: is there an easy way for that?14:59
ciaranm don't think there's an easy way for rm, short of git status | grep | cut | xargs git rm15:00
litage what's the difference between ``git init'' and ``git --bare init'' ?15:00
jonshea joined15:00
thorny_sun litage: --bare digs you down to just the .git folder-- it's used for storing a repo-- not actually using it15:01
litage thorny_sun: sorry, i'm not sure what you mean by "for storing a repo-- not actually using it"15:01
thorny_sun for example i use --bare to create all my remote repos and then locally push and pull to them15:01
litage ah15:01
CareBear\ A repo without working copy15:02
litage makes sense15:02
thorny_sun exactly15:02
try it and you'll see15:02
_zack left15:03
mib_h6p6q9yx joined15:03
mib_h6p6q9yx left15:04
litage i created a repo on my local machine, and would like to provide others on my LAN with access to it. how would you guys recommend i accomplish that, without creating a local user account for each person to ssh into?15:04
SuttoL left15:04
SuttoL joined15:05
thorny_sun you have to find a place to put it that everyone else can get to15:05
then you'll all have to push/pull to that repo15:05
ben`afkblowery15:05
ndim litage: read/write or readonly?15:05
litage ndim: read only15:05
thiago thorny_sun: git add .; git commit -a15:06
rm'ed files get rm'ed15:06
thorny_sun thiago: really-- git status tells me otherwise15:07
thiago litage: git-daemon if it's read-only15:07
thorny_sun thorny_sun: what thiago said-- i thought everyone was gonna be writing15:07
thiago thorny_sun: git add .; then run git status -a to see the changes that would be committed with -a15:07
Rich_Morin joined15:07
thorny_sun oh cool!15:07
thiago: you're a genius-- thanks so much!15:08
litage should i use git-daemon or gitosis or something else to give others read-access to my repo?15:08
Cacheaway litage: you are worried about using ssh because you don't want people to have shells on your system15:09
?15:09
thiago thorny_sun: or git status . as well15:09
litage Cacheaway: correct15:09
thiago thorny_sun: . and -a perform the same thing if you're at the top level15:09
pombreda1 left15:09
Cacheaway because there is a git-only shell available, set that as the default shell for the users, and there you go15:09
DAddYE Sorry, one question how I can get ONLY the last commit message?15:10
CareBear\ how to export? is git-archive|tar x the recommended method?15:10
thorny_sun thiago: how do i undo a merge i just did?15:10
jackdempsey joined15:11
litage Cacheaway: /bin/git-shell ?15:11
DAddYE Sorry, one question how I can get ONLY the last commit message?15:11
tokkee DAddYE: git show HEAD15:11
Cacheaway litage, i don't know anything about it other than what you can find out with man git-shell seems worth looking into15:11
chris2_ joined15:12
DAddYE tokkee: one last question, If I need this in a hook where I need to use it ? Update?15:12
litage Cacheaway: thanks for the suggestion. i'll have a gander15:12
tokkee DAddYE: I don't get that question, sorry...15:12
irotas joined15:12
thiago thorny_sun: the same way you undo a commit15:12
thorny_sun: git reset --hard HEAD^. Be careful! That erases the last commit from history.15:13
thorny_sun: always remember: do not go back in history if you've already pushed it15:13
thorny_sun k15:13
DAddYE tokkee: I want to send by email commit message through hooks... but update don't see the last commit message post-receive send me two mail!15:13
thorny_sun thanks15:14
Rich_Morin I need to interact with a slightly unorthodox git setup and need some clues - http://www.pastie.org/23482515:14
chris2 left15:14
Rustre thanks a _lot_ for those who helped me this morning using the git rebase feature15:14
chris2_chris215:14
Rustre it really rocks, and i feel i'm understanding it a bit better now15:14
Cacheaway does anyone have any insight into my question? (look back approx 17 minutes)15:15
broonie DAddYE: The default post-recieve-email hook might be helpful for you (look for teh bit that lists new revisions).15:16
DAddYE broonie: where I found it?15:16
Rustre Cacheaway: your ~/public_html is a git repo?15:16
Cacheaway yes15:17
broonie DAddYE: .git/hooks15:17
patco444 joined15:17
DAddYE there isn't!15:17
thorny_sun is there a way to do an interactive merge -- so i can say that i want this file from this branch instead of trying to merge it, but in another case i do want it to attempt a merge of the same file from the two branches?15:17
patco444 The Best Online RPG / Strategy game ever : http://www.fallensword.com/?ref=146105515:18
patco444 left15:18
thorny_sun thiago: ?15:18
Rustre Cacheaway: no clue then, i'm a real git noob :s15:18
jackdempsey left15:19
DAddYE broonie: ??15:19
thiago thorny_sun: git-merge-tool15:19
broonie DAddYE: That's where you can find it.15:20
Aphelion left15:21
DAddYE broonie: there isn't for me15:21
schacon joined15:27
Cacheaway Rustre: thanks. Anyone else know why post-update would work when run manually, but fail when invoked by git?15:27
foca_foca15:29
ciaran can I set git-diff to not display ^M when showing a file with mixed line-endings?15:31
rdavila joined15:31
DAddYE post-receive are called two times if I do a push?15:32
davidfetter joined15:32
markkalderon left15:32
thiago ciaran: you shouldn't have mixed line-endings15:32
ciaran I know15:32
thiago ciaran: CRLF is fine, LF is fine. Both isn't.15:33
so you should fix the file.15:33
CareBear\ left15:33
_slacker_ hi guys, how can i specify a certain revision of subversion to clone from when using git-svn? i read about this somewhere but i can't remember...15:34
digitalhobbit joined15:34
hobbes006 joined15:34
[raz] joined15:35
sverrej joined15:36
bremner _slacker_: you read the man page?15:36
Rich_Morin left15:36
_slacker_ bremner: yes, but don't know why the -r/--revision flag doesn't works for me15:36
hobbes006 hi there, i have been reading about .gitignore and about .git/info/exclude but i am still not very sure how to use it. i am attempting to keep a "settings" file separate from branch to branch in my local machine. If I have branch A and branch B, the settings file in branch A will not be merged into the settings file in branch B. typing this filename into .git/info/exclude does not seem to prevent the settings file from being excluded fro15:37
DAddYE is possible to use git log -1 for a given revision?15:37
_slacker_ I if do a clone without any option, it start to translate from the first svn revision, but i won't to do that because I have a lot of revisions, so i'm trying to find why the -r isn't working :s15:37
bremner _slacker_: ok, cool. All I can tell you is about the -r flag. git-svn fetch -r 99823 seems to be the documented option15:38
thiago _slacker_: the -r option has to point to a revision that does exist at the path you're trying to clone15:38
i.e., an actual commit that touches that path15:38
Rustre hobbes006: i might be able to help you out on this one, as i was struggling with it this morning :P15:38
hobbes006 Rustre: Thanks! :)15:38
Rustre hobbes006: here's how i did it : i have a central repository, for convenience15:39
on a backuped server15:39
cilly left15:39
hobbes006 is listening intently.15:39
Rustre and i push to this server from my "local" repository on my developent PC15:39
_slacker_ thiago: yes yes, it exists15:40
lea_w joined15:40
Rustre i'm doing web development, and on my development PC, i have a settings file which will "connect" to my local mysql DB15:40
thiago _slacker_: can you svn info -r NNN URL?15:40
hobbes006 right.15:40
Rustre i need that to be able to debug and play around and develop15:40
now, i need to "roll out" my website from time to time on the production web server15:40
hobbes006 Rustre: do you happen to be using django ? :p15:40
Rustre nope, not yet, but i should/will15:41
hobbes006 o ok. dont let me disrupt you. pls continue.15:41
Rustre (i'm new at this company, and everything is coded in php for the moment)15:41
DAddYE left15:41
Rustre (and i'm new to django too, but i've been playing around with it for some time now)15:41
anyway15:41
on the production server, here's how i rolled out :15:41
koke_ joined15:42
Rustre i first did a "git clone" from my central repo, in a "local" repo (on the web server)15:42
ie wwwtemp15:42
hobbes006 right15:42
Rustre i then copied everything from wwwtemp to the real www folder15:42
(included the .git folder and everything)15:42
hobbes006 riht15:42
Rustre now i have a repository in www on the production server15:43
with the "wrong" settings file15:43
hobbes006 right15:43
Rustre but all i need to do then is to modify locally the settings file15:43
then commit it15:43
hobbes006 ok.15:43
Rustre to the local repo (i won't push it to the central repo)15:43
hobbes006 but when you push?15:43
right15:43
Rustre now, each time i need to update my web production server :15:43
thorny_sun left15:44
hobbes006 ?15:44
Rustre i first push from my local dev PC to the central repo15:45
and i pull from the prod server15:45
it'll merge the changes from the central repo15:45
into the local "prod" repo15:45
see what i mean?15:45
hobbes006 hmm...15:46
cant we just use .gitignore and .git/info/exclude somehow.15:46
k0001 joined15:46
Rustre just a sec15:47
raz left15:48
[raz]raz15:48
Strogg joined15:48
Rustre sorry, talking with the boss15:48
gitsky hobbes006: .gitignore and .git/info/exclude concern only _untracked_ files15:48
Rustre gitsky: hobbes006 : exactly, that's what i figured the hard way this morning15:49
gitsky hobbes006: why not just commit your config file locally in each repository?15:49
Rustre you can't use it for this purpose, unless you just don't want _at all_ to track the settings file15:49
hobbes006 but.... i dont want settings.py to be tracked.15:49
gitsky hobbes006: then don't add it to git?15:49
Rustre but then, you'd need to create it (copy it?) manually on each server/computer...15:49
chrisb left15:50
hobbes006 yes.15:50
but how do i exclude it ?15:50
zawir joined15:50
hobbes006 when i type "git add ."15:50
Rustre hobbes006: if it is already tracked, then you can "untrack" it by using "git rm --cached settings.py"15:50
well15:50
hobbes006 it automatically adds everything downwards from the $GIT_DIR.15:50
Tv hobbes006: echo /settings.py >>.gitignore15:50
Rustre first add it to the .gitignore file15:50
hobbes006 ok15:50
charon left15:50
hobbes006 already did15:50
but it's still tracking :(15:50
Rustre but this will be useless if it's already tracked (already in the repo/index)15:51
Tv hobbes006: then remove it15:51
Rustre see what i mean?15:51
samjam left15:51
hobbes006 right15:51
Rustre the .gitignore and the others only prevent adding files to the repo15:51
hobbes006 git rm --cached settings.py15:51
Rustre once they're added, they will always be tracked (until you untrack them with git rm --cached...)15:51
hobbes006 AHHHHHHHHHH15:51
Rustre the --cached means "only remove it in the index/repo/whatever, not on the filesystem15:52
redondos left15:52
Rustre if you don't put --cached, it'll remove it _also_ on the FS15:52
hobbes006 i understand now.15:52
Rustre (from the working directoy)15:52
hobbes006 so the other question is.15:52
Rustre well, all my speech was useless then, sorry about that :P15:52
hobbes006 is it possible to specify that settings.py IS tracked in branch A15:52
but NOT tracked in branch B ?15:52
all on the same machine.15:52
Tv of course it is15:53
Rustre hobbes006: git rm it only on branch B i guess15:53
Tv branches aren't really related to each other in any way (apart from possibly sharing history)15:53
hobbes006 i see15:53
so, does that mean that .gitignore file will be different from Branch to Branch ?15:54
when i am in branch A, my .gitignore file excludes settings.py15:54
Strogg left15:54
hobbes006 when i am in branch B, my .gitignore file is simply blank. nothing stated there.15:54
bdiego joined15:54
hobbes006 do i "git rm --cached .gitignore" in order to achieve this ?15:55
Strogg joined15:55
ben_h_ joined15:55
DAddYE joined15:55
Arc_Arc15:56
Rustre errrr15:56
koke_ left15:56
Rustre i wouldn't change the .gitignore file15:57
i would leave it as is (with the settings.py in it)15:57
hobbes006 ok15:57
DAddYE Any can help me? Why this hook send me two mail? http://git.pastebin.com/d38583afb15:57
Rustre as it won't be taken into account if the settings.py file is already tracked, as said before15:57
OR, you could of course modify the .gitignore file differently on each branch15:57
koke left15:57
Rustre i guess there's no problem at all with that, the .gitignore is just tracked as any other file15:58
Cacheaway what is the use of the GIT_DIR env variable? is it for using dirs other than .git ?15:58
gitsky I think it's cleaner to have settings.py in .gitignore only in branch A15:58
ciaranm Cacheaway: it's to make the baby jesus cry15:58
gitsky otherwise a year in the future, you'll get very confused about this for sure :)15:58
Cacheaway: yes15:59
DAddYE Any can help me? Why this hook send me two mail? http://git.pastebin.com/d38583afb15:59
gitsky though the Modern Shiny Way is to git --git-dir=...15:59
Cacheaway thanks15:59
i was running git commands in my post-update16:00
lorandi left16:01
gitsky DAddYE: maybe once per each updated ref?16:01
DAddYE gitsky: I don't know... the only thing that I can say is that I receive two mail, one is correct, but one contains only the previous commit message16:02
Cacheaway basically, cd to a place where the same repo was cloned, and do a pull to get the new changes. it was failing because the bare repo i was pushing to set GIT_DIR=. (because it is a bare repo i guess) in the envoronment that post-update runs in16:02
DAddYE without my template16:02
gitsky UukGoblin: our great gitster guru spoke:16:02
True, and false ;-) Just "unstage" first in your "git add -i" session and16:02
then add only the necessary pieces back to the index (alternatively you16:02
can "reset" before entering "git add -i" session).16:02
should've said "thus spoke" :(16:02
DAddYE: well, debug it? this is pretty basic16:03
DAddYE: figure out with what parameters is it called each time, etc.16:03
ben_h left16:03
DAddYE gitsky: mmmm16:04
resolved16:04
!16:04
Ive another ook... update!16:04
gitsky i think it will just behave like that randomly ;p16:04
based on how many branches you push, if you push any tags along or whatever16:04
but maybe not16:04
jamie_alm joined16:05
UukGoblin gitsky, cool :-)16:05
gitsky, did cherry-pick's manpage patch got approved? :-)16:05
markkalderon joined16:05
jamie_alm left16:06
krawek joined16:06
jamie_alm_ joined16:06
jonshea_ joined16:06
bloweryben`afk16:07
jamie_alm_ bah, stupid internet16:07
lorandi joined16:08
koke joined16:09
yofel joined16:10
sverrej left16:11
cbreak left16:13
fhobia joined16:13
gitsky UukGoblin: yes16:16
UukGoblin nice16:17
arobenaroben|lunch16:18
\ask_ left16:20
ben_h_ben_h16:20
jonshea left16:23
xinming_ joined16:23
xinming_ When I use git-push, I got '16:24
When I use git-push, I got ' ! [rejected] master -> master (non-fast forward)'16:24
ciaran one revision back I have a commit which includes a change I wanted to be in the commit before it. What’s the best way to fix that? Can rebase -i handle this?16:24
xinming_ How will this happen?16:24
Tv xinming_: you need to merge the remote changes to your branch first (or, if you use rebase, stop rebasing published commits)16:25
ciaranm i'm making a patch for git rm --if-missing. poll: what exit status would you expect if you git rm --if-missing 'foo' and foo is not missing?16:26
ben_h_ joined16:26
Tv ciaranm: how's that different from --ignore-unmatch ?16:27
xinming_ Tv: thanks, worked, another question, when I use git-pull, It won't pull from the repository. instead, It displays many messages.16:27
ciaranm Tv: it removes files only if they're ENOENT16:27
xinming_ Tv: But git-remote show origin tells me the right path16:27
cebewee_ left16:27
Tv ciaranm: how's *that* different from update-index --remove?16:27
xinming_ Tv: Is there a way to make git pull from default repository?16:27
ciaranm Tv: it's part of 'git rm', which is where people expect it to be16:28
Tv xinming_: don't ask *me*, ask everyone16:28
xinming_ Tv: sorry. :-)16:28
Tv ciaranm: to answer your question, shouldn't "git rm --if-missing ." be a valid thing to run, then?16:29
xinming_ when I use git-pull, It won't pull from the repository. instead, It displays many messages.16:29
Tv ciaranm: so even if it is there, don't fail16:29
rtomayko joined16:29
ben_h__ joined16:29
xinming_ So is there a way to make git pull from default repository? Or, I have to pull the remote by specify the "remote-name" ?16:29
ciaranm Tv: with -r, yes. the question is whether it should exit with success if it doesn't rm anything.16:29
Tv xinming_: maybe those messages actually say what is happening16:29
jerbear joined16:29
icwiener joined16:30
reel__ left16:30
ciaranm i'd be inclined to say that it should exit with success so long as either stuff matches or you --ignore-unmatch, even if everything you list still exists16:30
gitsky hmm, so silly git newbie question16:31
how do i examine existing unmerged conflicts in my tree?16:31
is there anything better than git ls-files --stage for that?16:31
earcar left16:31
Tv gitsky: git status?16:31
gitsky # unmerged: sub116:31
that's not very informative16:31
I know that it's unmerged16:31
I want to know details16:32
Tv gitsky: like what?16:32
that's enough for me to open it in an editor..16:32
gitsky well, most importantly the competing sha1s16:32
the thing is, sub1 is nothing you could open in an editor16:32
timocratic joined16:32
Tv gitsky: then i think you do need ls-files16:32
gitsky hmf16:32
thanks16:32
xinming_ Tv: hmm, I'll check that16:33
Tv gitsky: i didn't say *text* editor ;)16:33
gitsky but _what_ should I actually open in the editor?16:33
Tv gitsky: maybe you want git mergetool?16:33
gitsky if we're not talking about text :P16:33
git mergetool is only about text, no?16:33
Tv the things you hook into mergetool get all the possible alternatives16:33
nope16:33
ciaran ok, I tried doing a reset to the commit before it to edit it, but that seemed to go badly. Is that the right way?16:33
halorgium left16:33
gitsky I see16:34
so this might work on binary files16:34
the only trouble now is that sub1 is not a file at all ;)16:34
Tv gitsky: well that's why tools run by mergetool get all kinds of input16:35
zed_DX joined16:35
gitsky docs say they just get the three files16:36
Tv gitsky: merge base, left, right, i believe -- how is that not sufficient?16:36
icwiener left16:39
sergiodj joined16:39
gitsky Tv: as I said, sub1 is not a file16:40
which is something that makes mergetool profoundly unhappy ;)16:40
Tv gitsky: what, then?16:40
gitsky a submodule16:40
Tv ahhh16:40
icwiener joined16:40
Tv yeah i don't expect anything to merge submodule HEAD changes nicely16:41
mergetool could provide you more info; e.g. git diff gives you sha and mode etc16:41
would just need to be backwards compat16:41
ben_h left16:41
markkald_ joined16:41
markkalderon left16:42
earcar joined16:42
CodeWar joined16:43
SuttoL left16:44
cbreak joined16:45
sverrej joined16:46
ben`afkblowery16:46
ben_h_ left16:46
bloweryblowery`afk16:47
blowery`afkblowery16:47
cbreakcbreak|afk16:47
SuttoL joined16:47
asdfdsfsd joined16:48
fhobia left16:48
koke left16:50
koke joined16:51
hobbes006 left16:56
aroben|lunch left16:57
jonshea_ left16:59
SRabbelier left17:02
litage left17:03
kanru left17:04
CodeWar left17:05
argonel does git know about xattrs?17:05
warlock_mza left17:07
gitsky no17:07
argonel pity17:10
aroben joined17:10
gitsky what about windows users? ;)17:10
and aren't they overally filesystem specific or something?17:10
ToxicFrog I believe the only attribute git tracks is executability.17:11
And yes, xattrs are filesystem specific. So are the rwx bits, for that matter.17:11
nud left17:12
ToxicFrog NTFS has something similar but not the same (but you can fake it); FAT only has w.17:12
argonel gitsky: i have a deep lack of care for windows users :)17:12
gitsky :))17:12
ToxicFrog argonel: some of us have to release cross-platform software, you know.17:12
lbt joined17:13
ToxicFrog (or, well, ok, I don't have to, but it would be dickish not to)17:13
aroben_ joined17:13
argonel ToxicFrog: true enough, but you don't have to do a cross-platform release of my software, and even if you did "have to", i'd honestly prefer it if you didn't :)17:13
lbt hi - having a problem ... : git-fetch -v -t isn't reporting v2.6.26 pulling from a local mirror17:13
ToxicFrog True, but I do use git for version control on both platforms I support17:14
hawking joined17:14
argonel in fact, i rather like the idea of roadblocks making it hard to make my software work well on windows, aside from my unwillingness to provide a windows user with any support17:14
kergoth`work left17:15
lbt I used git pull to get a copy of the kernel and then git-fetch -vt to update it periodically17:15
aroben_ left17:15
lbt this latest fetch didn't work17:15
any ideas?17:15
aroben_ joined17:15
ToxicFrog argonel: I don't. Deliberately introducing incompatibility makes one just as bad as MS.17:15
gitsterpaster17:16
ToxicFrog (well, ok, maybe not just as bad. But it's still not right, and very reminiscent of their tactics.)17:16
argonel ToxicFrog: sometimes the only way to teach someone not to punch you in the face is to punch them in the face17:16
gitsky doesn't understand what the problem is17:17
shingo joined17:17
lbt gitsky: my problem ? :)17:18
argonel ToxicFrog: i'm in the camp that believes that anything at all that makes it possible for you to stay in windows is inherently evil. but this is way off-topic for this channel :)17:18
paster pasky, "ls-files -u" is your friend ;-)17:18
bronson joined17:18
ijcd joined17:19
cilly joined17:19
ToxicFrog argonel: I write programs because I enjoy it. I release programs to make people's lives better. If they're currently using windows, then unless your program is so incredibly fantastic that it causes people's heads to spontaneously explode with joy, it probably isn't going to be the killer app that causes them to switch - assuming they can switch; not all windows software has linux equivalents, nor does it all17:19
run in wine.17:19
gitsky lbt: yes, but gotta run now17:19
paster: huh?17:19
lbt damn - OK17:19
http://pastebin.com/d484a124d17:19
paster "unmerged: sub1" ;-)17:19
hawking left17:19
pastergitster17:20
gitsky gitster: yes but ls-file sis plumbing17:20
I mentioned it in my question17:20
lbt: your reasons to believe the tag is on the server?17:20
really afk now :(17:20
ToxicFrog Basically, I view witholding releases just because you don't like an OS - not simply not making them because you don't have time or interest, but deliberately blocking attempts to create such ports - is a mean-spirited attempt to punish people for choosing the wrong OS, regardless of whether they actually have a choice, or if they do, whether they realized they had one.17:20
gitsky gitster: lol17:20
lbt err v2.6.26 was released :)17:20
hawking joined17:21
gitsky gitster: you got me there :))17:21
lbt: and mirrored out?17:21
ToxicFrog Furthermore, more ports -> wider user base -> more testing and bug reports -> better program.17:21
lbt I'm just putting together a pastebin to explain my setup17:21
gitsky lbt: first make sure it's on the server17:21
use git ls-remote17:21
hawking left17:21
argonel ToxicFrog: i understand where you're coming from, but i have no time nor interest in trying to disambiguate whether the bug a windows user is reporting is because the software isn't working right, or because the OS isn't working right.17:22
ToxicFrog Fair enough. My contention here is that while "I don't want to support this OS" is reasonable, "I will spend extra time and effort making life difficult for people who do" is not.17:23
tcoppi left17:24
lbt Here's my setup http://pastebin.com/d1cc1c7d017:24
tcoppi joined17:24
lbt I have a local machine with a copy of Linus' git repo17:24
hawking joined17:24
lbt I then clone from that machine to other local machines17:24
normally (last 18 months+) this has been fine17:25
argonel ToxicFrog: the beginning of this discussion is whether or not git supports xattrs, which may or may not be portable to windows. not implementing a feature because it can't be done (or not easily) is, imo, insanity17:25
ToxicFrog Wait. Not implementing a feature because it can't be done is insanity?17:25
uau lbt: your paste has "From git://elm/linux-git"17:25
lbt git fetch -v -t on my local server gives: http://pastebin.com/d484a124d17:26
yep that's my local server, elm17:26
uau are you sure the tag is on THAT server?17:26
ben_h__ left17:26
uau that 2.6.26 was released is obviously no reason to think that YOUR server would have the tag17:26
argonel ToxicFrog: i guess i left off end of the sentence, "not implementing a feature because it can't be done on windows is insanity"17:26
loupgaroublond left17:26
lbt git tag | grep 26 shows v2.6.2617:26
*but*17:26
git fetch -vt doesn't17:27
gitte left17:27
ToxicFrog Aah.17:27
lbt http://pastebin.com/d484a124d17:27
pdherbemont left17:27
ToxicFrog Can't be done on some linux filesystems, either.17:27
s/linux filesystems/filesystems supported by linux which one may very well have a git repo on/17:27
argonel well, and thats of course where the analogly falls apart :)17:27
s/ly/y17:27
lbt and I don't commit to my server (well, not this one)17:28
markkald_ left17:28
lbt it's supposed to be a clean pull of Linus' and any stable releases (no merges should be needed)17:28
aroben left17:28
kergoth`work joined17:28
hawking left17:29
lbt I am on git --version 1.5.6.217:29
and 1.5.6.117:29
hawking joined17:29
lbt s/.1//17:30
kanru joined17:30
DAddYE left17:30
lbt left17:31
bobesponja joined17:32
p4tux joined17:32
_graham_ joined17:32
Aikawa left17:34
joydivider joined17:34
deavid left17:36
tommorris_ joined17:37
hawking left17:39
sverrej_ joined17:43
emachado left17:43
sergio__ joined17:43
sergiodj left17:43
subtleGradient joined17:45
emachado joined17:45
cnk I needed to remove a password-containing file (database.yml) from my private github repository so I could open it up. I did a filter-branch command on a working copy and did a forced push to github and all looked well. Then I did something, not entirely clear what, from one of my other working copies and now 1) the database.yml file is back on github and 2) one of my working copies appears to have 2 copies of all commits. In looking into this, I am finding the me17:45
subtleGradient when sending people patches, how do you `git format-patch` multiple commits into a single patch?17:45
Rustre left17:46
cnk Does someone have a best practices suggestion to using github to move the same code base to various developers?17:46
jast subtleGradient, one patch always equals one commit, so what you can do is use (for example) rebase -i to squash several commits into one, thereby altering history (so don't do it if you have already published the commits somewhere else)17:47
subtleGradient jast: ahhh. that explains a lot! Thanks17:47
jast cnk, your first line got cut off at "I am finding the me"17:47
cnk sorry - I am finding the merge history kind of confusing. I think this might be because my git workflow is suboptimal17:48
nud joined17:48
jast cnk, anyway, doing forced pushs can sometimes cause problems with other working copies that still have the old state of things. i guess what you may have done is merge the new state of the central repo into a local repo that had the old commits... that could result in having every commit twice17:50
_zack joined17:50
cnk that sounds right17:50
subtleGradient is there a good site for examples of recommended workflows?17:51
cnk so to fix it ??? I was thinking of creating a patch file of anything that is in that working ocpy that isn't in github, and then recloning github and applying the patch17:51
I would love to find just such a site17:51
subtleGradient cnk: the topic mentions http://www.gitcasts.com/17:52
I'm checking that out now17:52
cnk so far I think those are all just the peepcode screen cast recut into separate episodes17:53
I have watched those but still missing something17:53
jast cnk, yeah, that's probably the easiest way to go. you can also create a series of commits from your local changes, use format-patch and later apply the patches using git am. this way you don't have to squash everything together.17:53
sverrej left17:54
cnk jast: thanks that might be nice. Though I am more concerned with just getting stuff over, less concerned about history and granularity17:54
MarcWeber ! [rejected] uml -> desk/uml (non fast forward)17:55
Is there an easy way to compare the results of both "heads" ?17:55
If git would print both hashes you could diff them, couldn't you?17:55
jast you don't need the hashes, try git diff uml desk/uml17:56
tommorris left17:56
MarcWeber jast: :) yay thanks17:57
jast what happened there is that in either the local or the remote repo, someone used something that altered history. you can pretty much forget about properly merging both together now, so let's hope one of the repos didn't add anything new. :}17:57
cnk But on subtleGradient and my quetions about workflow.... If you want to distribute the main line of development of a project via github, how do people approach the push? Do you have an explicit tracking branch for the github remote? pull to that branch? and then merge your local branch onto it? then push to github? Or should I be thinking 'rebase' somehow?17:57
Fullmoon_ joined17:57
jast i'll be back in a couple of minutes, then i'll try and answer that17:58
cnk jast: was your last reply to me? or to MarcWeber?17:58
subtleGradient cnk: it all depends on exactly what you're doing. But this is my current recommendation for MooTools: http://github.com/mootools/mootools-core/wikis/how-the-mootools-dev-team-contributes17:59
MarcWeber jast In any case it has only been me. As long as I haven't published the patch I amend-record some times..17:59
freaky[t] joined17:59
subtleGradient we all work on our own forks and push to them. a few of us also have access to push to the official fork17:59
johnevans joined18:00
pygi subtleGradient, I think first line on that page says "Dont do" what cnk did :p18:00
subtleGradient LD18:00
koke left18:00
subtleGradient :D18:00
koke joined18:00
uau hmm running "git gc" on a repository that was cloned from a local one created 24000 loose objects18:00
subtleGradient but what is the recommended way to get rid of a password file or whatever from all history?18:01
Eridius|work joined18:01
meyering anyone know why "git repack -adf" would leave 60k loose objects? I'm using git version 1.5.6.3.385.g9f9af and trying to clean up a 2.1GB repo produced by using cvsparse to convert the gdb cvs repo to git. Also tried git-1.5.5.1.18:01
uau there was a remote branch without a local one; the local mode of clone copied its objects even though they were unreferenced, then gc unpacked the unreferenced objects but didn't prune them because they were new18:01
koke left18:02
jamessharp1 joined18:02
uau meyering: maybe they're unreferenced? those are never packed (compare to what i just wrote above)18:03
try running "git prune"18:03
mcella left18:04
meyering uau: that did it. thanks. did something change in the last few months? istr I didn't need to do that before.18:04
johnevans left18:04
meyering down to just 5MB, which sounds like it's too small to be valid18:04
deavid joined18:05
pygi subtleGradient, :18:05
git-filter-branch --tree-filter 'rm -f testme.txt' HEAD18:05
git reset --hard18:05
perhaps? :)18:05
subtleGradient pygi: you lost me :[18:05
pygi cnk, look above ^_^18:05
subtleGradient ahh, got it18:06
cnk so the first is what I did. But what is the reset --hard?18:06
_slacker_ left18:06
MarcWeber cnk: reset branch to given hash --hard means also reset working directory18:07
DrFrasierCrane joined18:07
CodeOfficer joined18:07
cnk MarcWeber: but why is it needed in this circumstance? Isn't my working copy and index in sync after the filter-branch?18:08
git status at that point shows no changes18:08
ketralnis joined18:08
ketralnis left18:08
ketralnis joined18:09
Fullmoon_ left18:09
Fullmoon_ joined18:09
cnk subtleGradient: that MooTools doc looks good. I don't want multiple versions on github but isn't 'forking' in github is just creating a branch?18:11
SuttoL left18:11
gitsky branch is an abstract and ambiguous term18:11
conceptually, fork might be a branch18:12
MarcWeber cnk: I guess it's to make sure it's also gone from your working directory.. But you shoul ask pygi .. I've never used git-filter-branch18:12
gitsky but not in the sense normally used in git18:12
subtleGradient cnk: github forking makes a copy of the entire project.18:12
in practice, a fork is like another repo with its own branches and everything.18:12
hawking joined18:12
cnk so is more like 'git clone'?18:12
MarcWeber Which is the way to compare cherry picked patches? (eg if they have the same comment they don't have to have the same contents..) ?18:13
subtleGradient A major advantage of forking is that you get a nice online backup of all your personal work-in-progress.18:13
pygi cnk, yes, you can consider github's forking as "git clone"18:13
pdherbemont joined18:13
pygi (sorry for being amazingly slow, am writing)18:14
subtleGradient we forgive you18:14
_this_ time18:14
Fullmoon left18:14
bughunter2 joined18:14
bughunter2 hey, can someone check this problem: http://marc.info/?l=git&m=121586372728355&w=218:15
i've emailed about that a while ago, still couldn't figure it out18:15
cnk so if I want to adapt this workflow (http://github.com/mootools/mootools-core/wikis/how-the-mootools-dev-team-contributes) I should have a branch on my local repo that is exactly what is on github, and then a working branch that I use as the basis for feature branches18:15
then when I want stuff out on github, I pull to my github branch, then merge my working branch onto the github branch and then push to github18:16
would it be appropriate when I want my working branch merged into the github branch to use rebase?18:17
joevandyk left18:17
subtleGradient cnk: never rebase a branch that has ever been pushed18:18
if you do then you lose the ability to push a "fast-forward"18:18
bughunter2 subtleGradient: what's a "fast-forward" ?18:18
jamessharpe left18:18
subtleGradient I may be wrong, but that's how I understand it18:18
Eridius|work a fast-forward is when you try and do a merge but your HEAD is a direct ancestor of the remote branch, so instead of creating a merge commit it just "fast-forwards" your branch to point at the remote branch18:19
subtleGradient when you push to a remote. if there are any remote changes then it won't push, you have to pull first and then push again.18:19
Pistos joined18:19
Bryson left18:19
hawking left18:19
cnk I think I understand this - so in the workflow I described, I never push my working branch to github, only the github tracking branch I am using to sync up iwth my 'official' repo on github18:19
Bryson joined18:20
subtleGradient but if you rebase then you rewrite history that is already out there and you won't be able to push without forcing it and screwing everyone else up18:20
cnk: that's how I do it, yet18:20
Eridius|work subtleGradient: actually, cnk's rebasing would work fine18:20
Pistos I'm trying to git clone ssh://.... but the ssh appears to be trying to use bash, which doesn't have a correct PATH to find the git executables. Besides fixing the bash PATH, can I get git to use zsh instead [which has the right path]?18:20
subtleGradient might not be the best wrkflow, but it seems to work for me18:20
Eridius|work since he'd be rebasing his local working branch on top of the github-tracking branch18:20
Pistos: I would expect your shell to only set up the right PATH in an interactive shell anyhow18:21
hawking joined18:21
Eridius|work you can use the --upload-pack command to pass the non-standard path18:21
subtleGradient Eridius|work: I guess that makes good sense! As long as you don't rewrite history that has already been pushed, then you're good.18:21
I ususally avoid it just to keep from having to know if the changes were pushed before or not18:22
and since I've been pushing out both branches the whole time to different remotes18:22
Pistos Eridius|work: Right, that does seem to be the case, because my interactive shell can find it.18:23
sergio__sergiodj18:24
jdahm when I clone a repo on another computer, it seems to only copy over the current branch, should the other branches be added with git remote add ?18:24
subtleGradient jdahm: you can use `git fetch remoteName` to fetch everything. Or `git pull remoteName branchName` to fetch and track a specific branch18:26
drizzd_ joined18:27
SuttoL joined18:28
SuttoL left18:28
Bryson left18:29
Bryson joined18:29
jamie_alm_ left18:29
jamie_alm joined18:29
kelvie_work joined18:30
rdavila left18:30
powr-toc left18:33
warthog9 left18:33
queso_ joined18:34
koke joined18:36
chrisb joined18:37
drizzd left18:37
david_koontz joined18:38
queso_queso|away18:39
FH` left18:40
vintrepid joined18:42
FH` joined18:43
bughunter2 left18:43
Pistos Eridius|work: It doesn't seem to want to do anything with my -u or --upload-pack argument. It still says it can't find it.18:43
floppyears left18:43
Pistos I guess I can just symlink in /usr/bin or something...18:43
queso|away left18:43
queso left18:43
Eridius|work Pistos: curious18:44
Pistos Hrm, still doesn't like it...18:44
Basically, I am running of the git version of git; I ahven't installed it with my distro's package manager.18:45
All fine with an interactive shell, because I set the PATH right.18:45
But now this is getting all tripped up...18:45
chrisb left18:49
davidfetter waves to cody18:49
davidfetter oops. mischan. d'oh18:50
Eridius|work Pistos: what if you edit your .bashrc?18:51
chris2 left18:53
Pistos Eridius|work: I did. Doesn't seem to help.18:53
Eridius|work hmm18:53
Pistos Also .bash_profile.18:53
Eridius|work what did you pass to --upload-pack?18:53
Pistos Eridius|work: The full absolute path.18:53
I even tried symlinking in /usr/local/bin and passing that.18:53
I think I'd like a --verbose or --debug of some kind, at this point...18:54
So I can see what it's really trying...18:54
Eridius|work oh wait.. upload-pack is for pull. you want --receive-pack for push (which should be the path to git-receive-pack)18:54
Pistos I'm trying a git clone.18:54
Oh18:54
I see.18:54
Eridius|work oh clone18:54
Pistos Okay.18:54
Eridius|work why'd I think you were pushing?18:54
Pistos Not sure. :)18:54
Eridius|work so upload-pack was the path to git-fetch-pack?18:54
Pistos No, it was the path to git-upload-pack... should it be fetch-pack?18:54
Pistos tries.18:54
Eridius|work yes18:54
kumbayo joined18:55
Pistos Eridius|work: Docs here are not very clear on that, then. :P http://www.kernel.org/pub/software/scm/git/docs/git-clone.html18:55
Eridius|work oh wait, I'm still confusing myself18:55
the manpage is confusing me, actually18:55
it is supposed to be the path to git-upload-pack18:55
Pistos Anyway, it still doesn't help.18:55
warthog9 joined18:55
Eridius|work strange18:55
Pistos Hrm, alright.18:55
git clone --upload-pack /path/... right?18:56
Eridius|work yes18:56
asdfdsfsd left18:56
Pistos Bizarre.18:56
[tla] joined18:56
Pistos Maybe I need to change the PATH on the pulling side?18:56
Nope, nothing's helping.18:57
Puzzling.18:57
zed_DX left18:58
Pistos Same error with git ls-remote, BTW.18:59
ToxicFrog Isn't it --upload-pack=/path/...?18:59
Pistos I'll try.18:59
man page doesn't indicate that, though. :P18:59
ToxicFrog Hmm. Which man page?19:00
Pistos http://www.kernel.org/pub/software/scm/git/docs/git-clone.html19:00
ToxicFrog Typically it's -x foo or --long-x=foo19:00
Pistos Anyway, that didn't help.19:00
gitsky lol, feaping creaturism19:01
SRabbelier joined19:02
Pistos This thread seems to discuss the issue What's cooking in git.git (topics)19:06
er19:06
http://thread.gmane.org/gmane.comp.version-control.git/8570519:06
ciaran joined19:08
nud left19:09
tomas_ joined19:10
alfaaprimo joined19:10
redondos joined19:10
krawek left19:10
tomas_tomascejka19:11
tomascejka left19:12
krawek joined19:12
subtleGradient left19:12
tomascejka joined19:12
Pistos Okay, I give up. :(19:13
ciaranm if i'm on a branch with a remote, is there a command that'll show me the name of that remote?19:13
Pistos I guess I can try something besides ssh://19:13
If I give a bogus --upload-pack executable, it still says the same thing.19:15
It's like it's completely ignoring my option. :P19:15
henr_k when doing a git commit, I'm put into my editor, with the list of the files being commited. Are there any ways of getting the diff (git diff --cached) there instead?19:16
Pistos Okay, git ls-remote takes my upload pack. But not clone... hmm...19:16
Tv ciaranm: git config branch.master.remote, supply branch name as appropriate...19:16
Pistos henr_k: git commit -v19:16
henr_k Pistos: excellent! thank you! \o/19:17
CodeOfficer left19:17
ciaranm Tv: ah, no single command then? thanks19:17
gitsky yay, patchbomb'd!19:17
now off I go19:17
tomascejka left19:18
Pistos This just feels like buggy behaviour. :(19:19
gitsky then complain on the list?19:19
EiNZTEiN joined19:19
Pistos k, got it, by sshing and sending remote command "echo $PATH" to see that I wasn't really putting symlinks in the path.19:21
zawir left19:22
bryanl left19:24
ennemy joined19:25
ennemy left19:26
[tla] left19:29
elight joined19:34
Pistos left19:39
Fullmoon_ left19:41
johnjosephbachir left19:42
Ademan left19:43
vintrepid left19:44
Fullmoon joined19:49
Ademan joined19:50
sgrimm left19:50
Galaxor joined19:51
Galaxor Hi. I added an svn remote by editing my .git/config. I did git fetch svn-project. Now, when I look at the branches that I've got (git branch -r), I can see all the tags and branches that were on the svn project, but I can't find the trunk (which is what I want).19:52
gcj joined19:55
gcj hi all, can anyone help me to download a single branch from a git tree without getting the whole thing?19:55
uau gcj: "git fetch repository branchname" should work19:58
that only downloads it so it's available with the name "FETCH_HEAD" without automatically creating any local branch for it19:59
if you instead want to track the remote branch in the future too then use "git remote add" with additional arguments to restrict tracked branches20:00
paulttt joined20:00
gcj yeah i think i'd like to track the remote branch20:00
ok i did: git remote add git://git.kernel.org/pub/scm/linux/kernel/git/djbw/xscaleiop.git misc20:01
that doesn't give me any files though20:01
and git fetch gives an error20:01
(i want to track the misc branch)20:02
uau that command seems to be missing the name you give to the remote20:02
earcar left20:02
uau is "misc" the name of the branch you want to track?20:02
gcj yep20:02
reading man git-remote now20:03
Galaxor left20:05
johnjosephbachir joined20:08
drizzd_ left20:08
drizzd joined20:09
queso joined20:09
Fullmoon left20:12
eikonos left20:14
koke left20:16
koke joined20:17
[raz] joined20:19
DrFrasierCrane left20:21
ciaranm what's the best way to get rid of a remote? just remove it and then gc to get rid of all the things it had fetched that aren't used?20:25
telmich would guess yes20:25
Eridius|work gc won't remove objects newer than 2 weeks, though20:26
ciaranm ach, i can wait two weeks20:26
i just don't want it lying around forever20:26
Eridius|work `git prun`20:27
*prune20:27
sgrimm joined20:27
krawek left20:29
janm left20:31
raz left20:31
[raz]raz20:31
Lars_G joined20:31
Lars_G He.... HOLY F....20:32
Wow this channel is full!20:32
Lars_G cowers in a corner20:32
Eridius|work full? how can a channel be full?20:32
Eridius|work looks vaguely menacing20:32
krawek joined20:32
gcj uau, ok i think i want the clone model20:33
so i used this command: git remote add -f -t misc -m misc origin git://git.kernel.org/pub/scm/linux/kernel/git/djbw/xscaleiop.git20:33
Lars_G I want to archieve something, a little difficult.20:33
gcj and it's been running for about 20 minutes with no output now20:33
Eludias joined20:34
bloweryblowery`afk20:36
Lars_G I want to do something like this http://show.degopro.com/branches.png20:36
ToxicFrog gcj: how big is the repo it's fetching?20:37
Lars_G the trouble is, there will always be some differences between branch a and branch b20:37
gcj ToxicFrog, it's a kernel tree, it might be big20:38
uau gcj: running?20:38
Lars_G so there are commits I want to be able to merge into either direction, but there are differences that should never be merged20:38
gcj that's why i just want to fetch one branch20:38
Eridius|work Lars_G: that branch graph looks like a fairly normal situation20:38
ToxicFrog That's probably it, then20:38
Lars_G is that doable?20:38
uau 'git remote' should return immediately20:38
ToxicFrog uau: not with -f20:38
Which is "immediately fetch the branch"20:38
Eridius|work Lars_G: you mean you want to keep a branch that has a permanent change that never gets merged back into master?20:38
Tv Lars_G: there's nothing special in that graph20:38
gcj ok it finished now, thanks :)20:38
Lars_G Eridius|work: correct20:39
Eridius|work just do a merge --no-commit, edit out that change, and commit the merge. Now unless you modify that change in the future, any more merges will just ignore it20:39
gcj doesn't git fetch normally give some progrss indication?20:39
ToxicFrog gcj: pull does, I'm not sure if fetch does20:39
Lars_G Eridius|work: so after the edit it will ignore it forever until I do another --no-commit merge (where I can choose to add it in or not)20:39
Eridius|work: beautyfull. thanks a lot!20:39
After the edit, will I always have to do a merge --no-commit or normal merges will work ignoring the change I edited out20:40
Eridius|work normal merges will work20:41
unless you edit that hunk again20:41
Lars_G bows20:41
Lars_G It's hard to get your mind around it's working manners, but git rules20:41
Eridius|work heh20:42
Lars_G Ah well I come from cvs and then svn, git is very different in some aspects from them20:43
:)20:44
X-Blade left20:44
Eridius|work indeed20:45
X-Blade joined20:45
Arc_ joined20:48
davidfetter left20:53
Ademan left20:54
Ademan joined20:54
harinath left20:54
tusho joined20:55
tusho If I add a file to .gitignore that's already in the repo, is it removed?20:55
Eridius|work no20:55
tusho What do I do to remove it without removing my actual copy of the file then20:56
Eridius|work git rm --cached file20:56
tusho What if it's a directory?20:56
Will that still work?20:56
robinr joined20:56
Eridius|work git rm --cached -r dir20:57
tusho OK20:57
Thanks20:57
Arc left21:01
earcar joined21:02
vintrepid joined21:02
dduncan joined21:03
Fullmoon joined21:03
dduncan left21:04
X-Blade left21:04
lorandi left21:06
ciaran_ joined21:08
vintrepid left21:08
X-Blade joined21:09
elight left21:10
SRabbelier Pieter|Paris: ping?21:14
blowery`afkblowery21:15
mxey left21:17
ciaran left21:17
jamie_alm left21:19
earcar left21:21
markkalderon joined21:21
priidu left21:22
lea_w how come i have unpacked objects left in my object store after git repack and git gc?21:23
CodeOfficer joined21:24
zawir joined21:24
Mikachu unreachable objects younger than 2 weeks?21:24
elight joined21:24
lea_w hm... how can i get rid of them?21:24
without also expiring my reflogs i.e.?21:25
or i could also just pack them. just as long as they aren't loose ;)21:25
lea_w wonders...21:25
Mikachu git prune should remove them21:25
drizzd not being packed is the definition of loose21:25
lea_w Mikachu: huh, right. thanks!21:26
Mikachu i think gc invokes prune with the --expire switch set to 2 weeks, while the default is zero when you invoke it directly21:26
kallepersson joined21:26
grahal left21:26
lea_w so why is the expiration time set to 2 weeks by default?21:27
would you ever need those unreachable objects?21:27
Mikachu safety measure?21:27
kallepersson Hello there, quite a newbie question as I have not used VCS before: I'm reading gittutorial and it suggest to do git add $file_i_just_edited. Do i really have to do that before each commit? Isn't that stuff automatied?21:27
pygi kallepersson, git commit -a will do that for you21:27
kallepersson -a for auto?21:28
Mikachu or git commit $file21:28
pygi unless it's a new file, then you have to do "git add file"21:28
evanlight joined21:28
kallepersson I see21:28
makes sense21:28
pygi kallepersson, no, for "add" :P21:28
kallepersson ah :)(21:28
Mikachu actually i think it's for "all"?21:28
kallepersson but will git commit -a check all files I have changed and commit them?21:28
pygi yes21:28
Mikachu yes21:28
kallepersson but I'd need to add them manually to be able to use git diff --cached21:29
pygi Mikachu, yes, it's "all" :)21:29
sorry :p21:29
Mikachu kallepersson: obviously21:29
kallepersson then it diffs my changes to the upstream version.21:29
so obviously21:29
Mikachu or you can not add it and just use "git diff"21:30
lea_w kallepersson: (no, to the last commit)21:30
kallepersson then it won't diff that file21:30
ah, yeah.21:30
drizzd or git diff HEAD21:30
kallepersson tries with -a21:30
jamessharp1 left21:30
kallepersson commit, that is21:30
deavid left21:31
drizzd kallepersson: btw., if you delete files using git rm, you don't have to tell git about it in a separate steps.21:32
kallepersson ah21:32
how would i tell it?21:32
drizzd git add or git rm --cached21:32
Arc_Arc21:33
kallepersson okay21:33
drizzd but I never actually use that unless I accidentally delete a tracked file using just rm instead of git-rm21:33
kallepersson good, just wanted to know21:34
obviously you'd use git-rm21:34
very nice that git-rm is a command21:34
instead of git rm21:34
drizzd hmm? git-rm and git rm is the same21:34
kallepersson so you'd go like git-r[TAB]. faster to use21:34
sorry, that's what I meant. I'll also stop using enter as punctuation.21:35
drizzd there is a script which tells bash about those tab completions, even without the hyphens21:35
it's in contrib/ if you compiled git from source.21:35
gitsky kallepersson: don't get used to that21:36
kallepersson: the dash-form is going away with new git release21:37
entie joined21:37
kallepersson oh. oh well. I guess that it won't hurt to type a few more letters.21:37
gitsky it may be faster to use but (i) there is a bash completion file for git (ii) there's about 150 of these ;)21:37
kallepersson yeah, bash said 13621:37
git is really awesome when you get used to it!21:38
pygi 13221:38
:p21:38
kallepersson heh, oops.21:38
drizzd 14821:38
drizzd wins21:38
kallepersson hah, watching the Linus Git video. he doesn't do backups :)21:38
pygi drizzd, patience :p21:39
kallepersson hm, I did git rm foo.txt and then git diff --cache21:40
nothing.21:40
eikonos joined21:40
kallepersson git commit did catch it though21:40
so, how often should|do you commit with a regular project? after each big change or just randomly?21:42
drizzd you should get something like this from git diff --cached:21:42
diff --git a/csdf b/csdf21:42
deleted file mode 10064421:42
index e69de29..000000021:42
Gitbot [git e69de29]: http://tinyurl.com/5lvq4r [blob]21:42
kallepersson didn't.21:43
jast gotta love Gitbot21:43
kallepersson created file, committed file. rm'd file, ran git diff --cache ... without d.21:43
bongiojp left21:43
drizzd git diff --cache21:43
error: invalid option: --cache21:43
elight left21:44
evanlightelight21:44
gitsky kallepersson: I think that comes from experience21:45
kallepersson I did not see that error message due to less popping up on my console. too enthusiastic i guess :)21:45
indeed.21:45
jast as a rule of thumb, try to make each commit contain a logical unit of changes21:45
gitsky kallepersson: it's best to commit very often but there's certain overhead associated with committing for you (writing commit message, testing, etc.) and you should keep your eye bisectable21:45
jast if in doubt, err in favour of more commits21:45
gitsky kallepersson: but I'd say committing more often than optimal is better than committing less21:45
kallepersson hm, for instance21:46
after writing a random larger function, or even perhaps a class.21:46
and probably each time I'm about to do something else than code on that project.21:46
shaftyy left21:48
jast sounds reasonable21:48
though you could argue for combining in a single commit a new feature, related tests and documentation21:49
kallepersson makes sense21:49
gitsky lea_w: (I'll try to reply to your last mail ASAP, but just in case, in case you decide to do Git::Command or whatever, please drop me a message so that we don't do duplicate work)21:50
drizzd I guess everybody develops his/her own style. Personally, I commit as soon as it compiles and runs. Usually I find out I broke something a few commits later.21:50
gitsky lea_w: (wrt. the gitweb changes, I'm waiting for splitted patches - as much as I'd like to, I don't currently have time to figure out the huge one :( )21:50
kallepersson ah, that's nice21:50
Mikachu it's easier to combine small commits into a big one than the opposite21:51
kallepersson I'm probably going to do mostly web stuff though21:51
gitsky lea_w: (and I'm not saying I'd do Git::Command today or tomorrow ;)21:51
LiamH left21:51
SRabbelier left21:52
jerbear left21:53
lea_w gitsky: i'm not planning to add anything like Git::Command atm21:53
gitsky: yes, the next series will have the gitweb changes split21:53
gitsky: you have a lot of names btw ;-)21:53
seed joined21:54
SRabbelier joined21:54
Eludias left21:54
lea_w does anyone know a good way to split a large patch? is there any better way than removing chunks from a patch file?21:55
i.e. anything better than using an editor?21:55
drizzd git rebase -i and then git add -p or gitk21:57
Fullmoon left21:57
tiglionabbit_ joined21:58
drizzd s/gitk/git gui/21:58
lea_w drizzd: will i be able to conveniently remove and add chunks after the first pass though?21:59
drizzd I'm not sure about conveniently removing chunks with git add -p, probably have to use git add -i for that.22:00
You can remove chunks in git gui though22:00
lea_w ok... *nods*22:00
Yuuhi left22:00
lea_w oh, hm, didn't know git gui did that. thanks!22:00
juanjoc left22:01
Fullmoon joined22:01
juanjoc joined22:02
krh left22:02
kumbayo left22:03
juanjoc left22:03
sgrimm left22:03
emachado left22:05
bloweryblowery`afk22:08
blowery`afkblowery22:10
cbreak|afkcbreak22:10
krawek left22:10
paulttt left22:10
FunkeeMonk left22:12
paltman left22:13
_graham_ left22:15
evan joined22:16
evan how does git detect that a blob is binary?22:16
robinr left22:19
lea_w evan: where does it detect that?22:20
blobs are normally opaque, well, blobs of data22:21
evan well, "git format-patch" detects it to know whether to generate a binary patch or not22:21
Eridius|work evan: xdiff-interface.c detects binary by looking for a 0 in the first 8000 bytes (dunno what xdiff-interface.c is *for* though)22:21
evan Eridius|work: oh, interesting.22:21
ok22:21
i'll look in xdiff22:22
Eridius|work convert.c detects binary by looking if the "stats" contains any NULs, or if the number of printable chars >> 7 is less than the number of nonprintable chars22:22
dunno what that's used for either though22:22
evan hm22:22
well, thanks22:22
those are 2 good places to start with.22:22
cebewee if I post a patch series, where some patches are from another author, do I need to add my SoB to these patches, too?22:24
telmich well, with SoB you just say that you trust your source22:24
BigCanOfTuna_ joined22:25
dramsay left22:25
jengelh I trust myself, always :p22:25
telmich that's more than I do :-)22:27
jast xdiff is probably the right place to look22:27
cebewee, it's encouraged, yes (and it can't hurt, so what the heck :)). preferably there should by a SoB by the original author too, of course.22:28
BabelO left22:29
johnw- joined22:30
MarcWeber Does git-config support listing all keys of a section?22:31
Mikachu you can -l | grep22:32
BigCanOfTuna left22:32
MarcWeber Mikachu: Ah fine.22:32
Mikachu (that is not a no as such, just a suggestion)22:33
MarcWeber It's ok for my little script22:33
CrnkyGeek joined22:34
BigCanOfTuna__ joined22:36
BigCanOfTuna__BigCanOfTuna22:36
vbabiy left22:37
Weasel[DK] What is the correct way to edit the .git/description file ?22:37
aroben_ left22:38
jast vim :)22:38
gitster emacs.22:38
ciaranm ed.22:38
Weasel[DK] he he funny... ;)22:38
ciaranm ed is the standard text editor.22:38
gitster says "holy war begins!"22:38
Mikachu $EDITOR .git/description22:39
Gitbot Mikachu: Unknown command or plugin 'EDITOR'.22:39
gitster sensible-editor ;-)?22:39
Weasel[DK] lol22:39
jast M-x butterfly22:40
Weasel[DK] what i mean is.. how does it get distributed... dont seem push is working here22:40
Mikachu it doesn't22:40
bloweryblowery`afk22:40
Weasel[DK] so it is only working downstream ?22:41
jast ah, clearly i don't know emacs. disregard my advice.22:41
Mikachu i think only gitweb reads that file?22:41
jast more like off-stream22:41
Mikachu i only know c-x c-c22:42
Weasel[DK] when you clone then22:42
BigCanOfTuna_ left22:45
Weasel[DK] i just tried it out... the changes .git/description are not distributed when clone'ing.22:46
SRabbelier left22:47
nud joined22:48
SRabbelier joined22:48
uau Weasel[DK]: it's only for local use22:48
ereslibre_laptop joined22:49
ereslibre_laptop hi there22:49
Weasel[DK] uau, so i see... a bit strange i think22:49
ereslibre_laptop after merging a branch, should I delete it, or is it good to keep it ? (no more work will be comitted on it). I have that branch both, local and remote22:49
johnw- even if you delete it, its commits will not be deleted22:50
it's just the name you're getting rid of22:50
ereslibre_laptop I know, but the history will identify that the branch happened ?22:50
Mikachu yes22:50
ereslibre_laptop the merge, sorry22:50
johnw- absolutely22:50
ereslibre_laptop great. thanks22:50
Mikachu the history doesn't care about branches really22:50
ereslibre_laptop I see22:50
Mikachu ie, about branch refs22:50
johnw- if you want to view the merged commits, you can use for example git log HEAD^222:51
Mikachu the actual commits have info about the history22:51
amigrave joined22:51
johnw- while git log HEAD will just show the merge commit itself, not the commits that made it up22:51
johnjosephbachir left22:51
mib_a7mj00 joined22:51
Mikachu johnw-: hm? pretty sure it will follow both legs22:52
johnw- git log will?22:52
amigrave how can I check a diff of only the last committed changes made to a particular file using command line ?22:52
ereslibre_laptop strange git-merge doesn't have an option for that, for instance git-merge -d foo22:52
johnw- i thought its output was linear, I could be wrong22:52
ereslibre_laptop (-d will delete foo after merging)22:52
Mikachu johnw-: git log --graph22:52
johnw- amigrave: git diff HEAD^ -- file?22:52
Mikachu: ah cool, thanks!22:53
amigrave johnw-: won't work. But there's something strange. When I type only "git diff", the output is empty !?22:55
mib_a7mj00 left22:55
johnw- that just means you don't have uncommited changes22:55
uau amigrave: "git log -p -n 1 file" at least (it'll show the whole commit though, not just diff)22:55
Mikachu johnw-: it means he doesn't have unadded changse22:55
uau -n 1 means to show one commit only22:55
Mikachu -1 also works22:55
johnw- yes, I misspoke22:56
Mikachu maybe git show $(git rev-list -1 file) file22:56
johnw- why not just git show HEAD^ -- file?22:56
hmm git diff HEAD^ -- file works here, but show doesn't22:56
Mikachu the changes might be in HEAD~5022:57
johnw- ah22:57
jackdempsey joined22:57
Mikachu johnw-: git show HEAD -- file22:57
johnw- i'm just off my game today!22:57
Mishakun left22:59
amigrave uau: Mikachu: johnw-: "git log -p -n 1 file" works by showing last commit but it doesn't seems to show only diff for specified file. If I do "git log -p -n 50 file" the outputted diff is showing modifications in other files than the specified file23:01
Mikachu amigrave: read what i wrote23:01
or for that matter, what uau wrote23:01
\ask_ joined23:02
amigrave Mikachu: ah yes ! sorry ! my fault23:03
SRabbelier left23:03
EiNZTEiN_ joined23:04
EiNZTEiN left23:04
\ask_ left23:05
MarcWeber I've written my first git script.. Maybe its useful for you as well?23:05
\ask_ joined23:05
MarcWeber You can describe test merges and redo the merge using git-test-merge name..23:05
http://rafb.net/p/OiWgEU19.html23:05
ereslibre_laptop hmm, i am getting this error when trying to push23:06
! [rejected] master -> master (non-fast forward)23:06
MarcWeber ereslibre_laptop: This means someone has replaced one of the patches by another one..23:06
(which is called changing history and should be avoided for exactly this reason)23:07
Ademan left23:07
heycarsten left23:07
MarcWeber You can either push -f (override the target. this could loose commits) or fetch that branch and rebase your changes23:08
ereslibre_laptop hum, I just merged a branch locally (git checkout master; git merge foo; git push origin master; git branch -d foo; git push origin :heads/foo)23:08
MarcWeber: is that i did it wrongly ?23:08
now I did some commits locally on master and get that error when trying to git push origin again23:09
uau are you sure nobody else pushed commits in the meantime?23:09
MarcWeber ereslibre_laptop Create a new branch based on your master23:09
git-branch new master23:10
Then you can't loose your modifications.23:10
ereslibre_laptop uau: this is a testing thing in which the one that only commit is me ;)23:10
MarcWeber Than you can git-pull -f to reset your local master to the same hash than the remote one.23:10
uau if the commit you pushed is still in the history of your current master branch then you should not get that message23:10
MarcWeber After having done this you can use gitk --all to watch where both branches (new and master) diverged23:11
uau non-fast forward means that the remote state is not in the history of the commit you're trying to push23:11
brosner left23:11
ereslibre_laptop MarcWeber: gitk == qgit ?23:12
MarcWeber No. Don't konw qgit. But I guess you can view multiple branches using qgit as well23:12
gitk is based on tcl/tk23:12
ereslibre_laptop yep23:12
MarcWeber ereslibre_laptop: If you do this there there is a common ancestor of new and master. Something has gone wrong here. It should have been commit - commit - master - commit - commit - new23:13
ereslibre_laptop MarcWeber: after creating the new branch and pulling, I see the old one again23:14
d0k left23:14
MarcWeber ereslibre_laptop The old one you've pushed the first time?23:14
ereslibre_laptop yep23:14
now i think I can just merge newmaster with master23:15
and I am done ?23:15
MarcWeber If this is what you want /need then yes23:15
Is qgit more powerful than gitk ?23:16
ereslibre_laptop hvent used gitk23:16
MarcWeber: wait a sec, i have a small mess in here. lets see if taking a shot..23:16
MarcWeber: that way you can see how qgit is too23:16
MarcWeber I'm looking at the screenshots on sourceforge..23:17
I really like gitk though I haven't figured out how to find commits in history touching a path and removing the hash to enter a new one doesn't accept ctrl-backspace :(23:17
lolage0 joined23:18
jackdempsey left23:18
MarcWeber And gitk can't filter history on selected code range, can it?23:18
ereslibre_laptop MarcWeber: what ihave is this http://media.ereslibre.es/2008/07/git.png23:19
MarcWeber: basically what I want is master and gitorious/master to be at the same commit level23:19
EmilMedve left23:20
ereslibre_laptop it seems master is "after" gitorious master. I guess I only need to do a checkout on master and pull ?23:20
Eridius|work "after"?23:20
master and gitorious/master have diverging histories23:20
MarcWeber If they were they would be on one line23:20
Ademan joined23:20
ereslibre_laptop how can that be if I did a git push gitorious master ?23:21
MarcWeber Good question.23:21
Eridius|work does anybody else have commit access?23:21
err, push access?23:21
ereslibre_laptop nope23:21
MarcWeber Scroll down and see where the history differs23:21
Eridius|work then where did the "Merge branch 'smooth'" commit come from?23:21
ereslibre_laptop only on the commit you see there23:22
"merge branch smooth"23:22
Eridius|work I mean, if that wasn't in your master, and nobody else has push access, how'd that get into gitorious/master?23:22
MarcWeber ereslibre_laptop: Scrool down and watch the difference red and black line..23:22
ereslibre_laptop hehe... that is. dunno23:22
black line have some commits23:23
red one, only the "merge branch smooth"23:23
Weasel[DK] left23:23
ereslibre_laptop is the only commit that black hasn't. and is the only commit on that branch actually23:23
MarcWeber And why did you merge red and green?23:24
Eridius|work ereslibre_laptop: ya know, maybe you should just force-push master to gitorious and then merge in 'smooth' there23:24
ereslibre_laptop MarcWeber: that's a pretty good question. I just did the merge, and later did a git push gitorious master23:25
MarcWeber The "Add the codebase for".. patch should have been on master (black line) I guess?23:25
Eridius|work it actually was on master as well23:26
same patch on both lines23:26
jengelh joined23:26
ereslibre_laptop MarcWeber: no, that ine is in 'smooth' and is fine there ;)23:26
ok, so now it seems it is working23:27
what i did is23:27
what you suggested ebfore23:27
create a branch23:27
newmaster23:27
merge newmaster on master23:27
git push gitorious master23:27
that id it23:27
did it*23:27
lea_w What's the difference between 'git checkout -v newbranch' and 'git branch newbranch'?23:28
s/-v/-b/23:29
Eridius|work git branch doesn't checkout the branch23:29
it just makes it23:29
`git checkout -b newbranch` is the same as `git branch newbranch && git checkout newbranch`23:29
lea_w Eridius|work: oh, i see. thanks!23:29
mxey joined23:29
MarcWeber ereslibre_laptop This doesn't make sense. The only commit on the red line is the merge?23:30
ereslibre_laptop yes23:30
¬¬23:30
that is what confuses me23:30
MarcWeber: maybe a qgit fault ?23:30
dramsay joined23:30
clsdaniel joined23:31
p4tux left23:31
MarcWeber ereslibre_laptop Don't get it.. Why don't you just merge master and with "Add the codebase for a smooth .. "?23:31
ereslibre_laptop that is what i tried to do23:31
maybe when pushing it i did something wrong ?23:32
dunno23:32
¬¬23:32
MarcWeber ereslibre_laptop: Well.. That's the cause then..23:32
Eridius|work a push cannot create a merge23:32
but whatever happened, we're not going to be able to figure it out23:32
as long as you got your history in a good state now, that's all that matters23:32
ereslibre_laptop it is very probably that i pushed when being on a different branch or something ? :/23:32
_zack left23:32
MarcWeber ereslibre_laptop: You've got two masters: the remote one and the local one. And qgit did the merge with the older remote master..23:33
ereslibre_laptop qgit only reads, it doesnt do anything23:33
Eridius|work MarcWeber: ahh, good thinking23:33
ereslibre_laptop MarcWeber: yes, that is what i have23:33
MarcWeber: master in there, and master in here23:33
i work here, commit23:33
and later, git push gitorious master. is that workflow wrong ?23:34
MarcWeber ereslibre_laptop: So create a new branch master2 and merge taht with the green commit.23:34
cardioid I read that as "git push glorious master"23:34
And I thought maybe you liked git a bit too much23:34
ereslibre_laptop xD23:34
MarcWeber ereslibre_laptop: No I'm talking rubbsih.. just tell qgit to use the correct branch when merging.. :)23:34
ereslibre_laptop installs gitk23:35
MarcWeber ereslibre_laptop gitk can't do merges23:35
ereslibre_laptop qgit can't either. qgit only reads ur repository23:35
GeckoPie_ joined23:36
MarcWeber Then I don't see why you want to get gitk? Maybe because it copies the hash to clipboard as soon as you mark a commit?23:36
ereslibre_laptop omg, this seems an scalextric23:36
GeckoPie left23:36
Fullmoon_ joined23:37
ereslibre_laptop hehe cool23:38
http://media.ereslibre.es/2008/07/gitk.png < MarcWeber ;)23:38
jamie_alm joined23:38
ereslibre_laptop wonders wth did he did ;)23:39
jamie_alm left23:39
amystrat joined23:40
cilly left23:40
jackdempsey joined23:41
ciaran_ left23:41
amystrat Having trouble with gitosis install23:42
MarcWeber What is gitosis?23:42
amystrat http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way23:42
Eridius|work ereslibre_laptop: you merged gitorious/master23:42
so it looks a bit odd23:42
cebewee has problems writing a test for the suite without stupid bugs =)23:43
GeckoPie_ left23:43
elight left23:44
koke left23:45
ereslibre_laptop nah the problem seems to be git-svn23:46
git svn rebase ; git push gitorious master doesnt like it23:46
Eridius|work well no, you've just rebased. if you rebase a branch you've published, you're going to have issues23:47
ereslibre_laptop Eridius|work: so the problem is "git-svn rebase" ?23:48
nud left23:48
MarcWeber ereslibre_laptop: Yes.23:48
ereslibre_laptop great, finally found23:48
MarcWeber It has only rebsed your local branch, but not the one one the server..23:48
ereslibre_laptop: Have a look at git-rerere --help23:49
SRabbelier joined23:49
ereslibre_laptop ok, thanks23:49
MarcWeber ereslibre_laptop: And if you want to keep a merge up to date merging the svn trunk and your fork for testing only you can use my script :-)23:50
gitster notices gitte also sounds like a poet ;-).23:50
ereslibre_laptop MarcWeber: hm, what I want is: get commits from kde svn, do my work locally, commit to gitorious in case my computer breaks, commit to kde23:51
what i need is the svn up that isn't git-svn rebase23:51
git svn fetch is probably the only thing i need23:52
davidfetter joined23:54
Fullmoon left23:55
tommorris_tommorris23:57
bronson left23:59

Logs Search ←Prev date Next date→ Channels Documentation