| 2008-07-16 |
|
pasky
| Spyro: do the fsck | 00:00 |
|
rtyler
| pasky: here's the brief transcript between me and the guy evaluationg 1.5.0 | 00:00 |
|
pasky
| Spyro: and even before, check permissions | 00:00 |
|
rtyler
| http://pastebin.com/d582675cf | 00:00 |
|
Spyro
| I already did. it returned ok | 00:00 |
|
| (well no text) | 00:00 |
|
pasky
| Spyro: the gitweb user has to have full access to the repo | 00:00 |
|
Spyro
| I've ensured a+r permissions across the repo | 00:00 |
|
pasky
| Spyro: maybe you're hitting the <8c6202> umask bug | 00:00 |
|
Gitbot
| [git 8c6202]: http://tinyurl.com/5snfbw -- Fix backwards-incompatible handling of core.sharedRepository | 00:00 |
|
pasky
| Spyro: and what about +x for directories? | 00:01 |
| ← sris left | 00:01 |
|
pasky
| (hint: a+rX) | 00:01 |
|
Spyro
| hm. just spotted this though: fatal: unable to read source tree (1d9d8fa8ce1a8481d0239948af1f512af703254b) | 00:01 |
| ← BabelO left | 00:01 |
|
pasky
| I bet on permissoin problem | 00:01 |
|
Spyro
| aha, a+rX. good call | 00:01 |
|
| Thanks :-) | 00:01 |
|
SRabbelier
| !botsnack | 00:02 |
|
| :P | 00:02 |
|
pasky
| # | 00:02 |
|
| (12:24:57 AM) R. Tyler Ballance: like, pretend I wasn't in the meeting :p[M#y@ | 00:02 |
|
| lol | 00: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
| heh | 00:02 |
|
pasky
| Spyro: yes but not in any release | 00:02 |
|
Spyro
| right :) | 00:02 |
|
pasky
| Spyro: umask=0644 might be a workaround | 00:02 |
|
| test it out | 00:02 |
|
rtyler
| I somehow got left out of the meeting about SVN, despite being the one looking into Git | 00:02 |
|
pasky
| er | 00:02 |
|
| shared=0644 | 00:02 |
|
| sorry | 00:02 |
|
| Spyro prays to the debian gods | 00: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 tablets | 00:03 |
| → igorgue joined | 00:03 |
|
SRabbelier
| ciaranm: nono, stone tablets are not in stable yet | 00: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 package | 00: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 dselect | 00:05 |
|
Spyro
| my machines all run testing :) | 00:05 |
|
SRabbelier
| lol :P | 00:05 |
|
| SRabbelier is running testing as well | 00:05 |
|
SRabbelier
| etch ftw | 00:05 |
|
| pasky is actually pretty happy etch user | 00:06 |
|
SRabbelier
| :P | 00:06 |
|
| Spyro uses the testing alias so I dont have to change it when they shuffle the names around ;-) | 00:06 |
| → cilly joined | 00:06 |
|
pasky
| oh yeah I used to do that for 'stable' | 00:06 |
|
| learnt my lesson after few disasters | 00:06 |
|
SRabbelier
| Spyro: yeah, lenny, sarge, etch, whatever, I forget :P | 00:06 |
|
| pasky: maybe specify the actual version instead then? | 00:06 |
|
pasky
| well, that's what I did | 00:07 |
|
Spyro
| well the filestore lost its NFS daemon yesterday. but one application crashing in over 400 days of use is pretty good I think | 00: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 yawns | 00:08 |
|
pasky
| stop yawning | 00:08 |
|
SRabbelier
| have fun :) | 00:08 |
|
pasky
| code! | 00:08 |
|
SRabbelier
| I'm off to bed :P | 00:08 |
|
pasky
| aaw | 00:08 |
|
SRabbelier
| code? tomorrow maybe! | 00:08 |
|
| Spyro is gonna catch some darks too I think | 00:08 |
|
pasky
| hmm | 00:08 |
| → gitte joined | 00:08 |
|
pasky
| maybe I should do the same | 00:08 |
|
SRabbelier
| now is bed tiem :P | 00:08 |
| ← icwiener left | 00:08 |
|
pasky
| good night to you then | 00:08 |
|
| Spyro just finished preparing the MFD patches for linux... | 00:09 |
|
SRabbelier
| pasky: check your crontab to see when suspend job runs :P | 00:09 |
|
pasky
| MFD? | 00:09 |
|
Spyro
| Multi Function Devices | 00:09 |
|
SRabbelier
| most f*ing dorky? | 00:09 |
|
Spyro
| currently queued in RMKs tree to go into mainline | 00: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 :P | 00: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 :P | 00:10 |
|
pasky
| bah | 00: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 something | 00:10 |
|
| Spyro: signing it off or such, ccing relevant people | 00:10 |
|
Spyro
| SRabbelier: Im not, dont worry | 00: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 :P | 00: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 left | 00:11 |
|
Spyro
| Im off too I think :) | 00:11 |
|
| TTFN! | 00:11 |
|
rtyler
| pasky: I'm not 100% certain | 00:12 |
|
| I didn't play with it because I have enough brane damage after my git-svn fuckery | 00:12 |
| ← schacon left | 00:13 |
| → vmiklos joined | 00:14 |
|
gitte
| vmiklos: I thought you were on a bike... | 00:15 |
| → lu_zero joined | 00:16 |
| ← nbrunson left | 00:16 |
|
pasky
| rtyler: I see.. thanks anyway | 00: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.0 | 00:20 |
| → ketralnis joined | 00:22 |
| ← njal left | 00:29 |
| → doener_ joined | 00:31 |
| → foca joined | 00:32 |
| → heycarsten joined | 00:33 |
| → noecksit joined | 00:34 |
|
pasky
| i see | 00:36 |
|
| hmm, renaming non-checkedout submodules is annoying | 00:36 |
| → elight joined | 00:38 |
| ← joydivider left | 00:38 |
|
| pasky will do a horrible hack for now ;) | 00:39 |
| → hansengel joined | 00: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.o | 00:40 |
|
| In file included from daemon.c:1: | 00:40 |
|
| cache.h:9:18: error: zlib.h: No such file or directory | 00:40 |
|
| make: *** [daemon.o] Error 1 | 00:40 |
|
spearce
| gah. i just posted a message with no To: header and only Cc: header. stupid mutt. | 00:40 |
| → Leefmc joined | 00:40 |
|
hansengel
| Do I need zlib development files, or something? | 00:41 |
|
spearce
| hansengel: you appear to be missing the zlib dev package, yes | 00:41 |
|
hansengel
| ah | 00:41 |
|
| yep, that fixed it so far :) | 00:42 |
| → brosner joined | 00:43 |
| ← doener left | 00:44 |
| ← RaceCondition left | 00:45 |
|
nil
| hi! | 00:46 |
| ← zawir left | 00:46 |
| GeckoPie_ → GeckoPie | 00: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 files | 00:46 |
| ← hansengel left | 00:47 |
|
ciaranm
| nil: git checkout | 00:47 |
| → elliottc1ble joined | 00: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 want | 00:48 |
|
| git checkout iscrewedupthisfile.cc | 00:48 |
| ← rofrol left | 00:49 |
|
nil
| ok, the manpage has good exemples | 00:49 |
|
| thanks | 00:49 |
| ← bdiego left | 00:52 |
| → mxey joined | 00:54 |
| ← elight left | 00:55 |
| GeckoPie → GeckoPie|Sleep | 00:56 |
| → crab joined | 00:58 |
| ← elliottcable left | 00: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 left | 01:00 |
| ← godlygeek left | 01:00 |
| → marc_vw joined | 01:02 |
| ← ketralnis left | 01:03 |
|
Eridius|work
| crab: you could make an alias that manufactures that string | 01: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 left | 01:07 |
| → rtomayko joined | 01: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 joined | 01:12 |
| → markkalderon joined | 01:14 |
| ← ijcd_ left | 01:19 |
| ← lu_zero left | 01:19 |
| ← mvw left | 01: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 left | 01:23 |
| ← Fullmoon left | 01: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 master | 01:26 |
|
| # Your branch is ahead of the tracked remote branch 'origin/master' by 6 commits | 01: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 left | 01:27 |
| ← warthog9 left | 01: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 night | 01:29 |
| ← gitte left | 01:29 |
| → VVSiz_ joined | 01: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 joined | 01:30 |
|
crab
| gitster: what blame optimisation? | 01:30 |
|
pasky
| yay | 01: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 left | 01:32 |
|
pasky
| git rm and conflicts at the morning | 01:32 |
|
| 'nite guys | 01:32 |
| → garrin joined | 01: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 left | 01:37 |
|
crab
| oh no, not more tcl. | 01:38 |
|
| heh, "author refuses to respond to comments" | 01:39 |
| → elliottcable joined | 01:40 |
| ← elliottc1ble left | 01:40 |
| ← rdavila_ left | 01:41 |
| ← elliottcable left | 01:43 |
| ← Leefmc left | 01:43 |
| → hagabaka joined | 01:44 |
|
hagabaka
| if I push a commit and then later commit --amend it, is it possible to fix the remote? | 01:44 |
| → tmz joined | 01:45 |
| → jonshea joined | 01:45 |
| ← VVSiz left | 01:46 |
| ← carrus85 left | 01:46 |
| → elliottcable joined | 01: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 version | 01:48 |
|
hagabaka
| oh | 01:49 |
|
| what about the second question? | 01:49 |
|
| or, a way to warn me when I try to amend an already pushed commit | 01:50 |
| ← whee left | 01:51 |
|
uau
| if you do "git reset <the state you pushed>" while you have the amended version checked out | 01:52 |
|
| then you should have the nonamended version as branch state but amended version as working directory state | 01:53 |
|
| and could then commit it | 01:53 |
| → Leefmc joined | 01:53 |
|
uau
| creating an extra commit moving from original version to amended one | 01: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 reflog | 01:55 |
|
hagabaka
| ah | 01:55 |
|
uau
| or since you pushed it | 01:55 |
|
| you should be able to see it as the status of the remote branch | 01:55 |
|
hagabaka
| oh | 01:55 |
|
| is there a script to automate that? | 01:56 |
| → joydivider joined | 01: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 joined | 01:58 |
|
hagabaka
| something like, find amended commits to the last pushed commit and change them into regular commits | 01:59 |
| ← lea_w left | 01:59 |
|
hagabaka
| preferably it would work even if there are more commits after the amend | 01: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 commit | 02: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 pushed | 02:03 |
|
| and if you change the same commit multiple times the last amend just replaces the previous ones | 02:03 |
|
hagabaka
| does that mean the last amend is the sum of all the previous amends? | 02:03 |
| ← digitalhobbit left | 02: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 amending | 02:04 |
|
| hagabaka: amend removes the last commit from the branch and replaces it with a new one | 02:04 |
|
| if you keep replacing the commit the result doesn't really differ | 02:05 |
|
| if doesn't matter if you replace A with B, then B with C | 02:05 |
|
| or A directly with C | 02:05 |
|
hagabaka
| but the state before amends are stored? | 02:05 |
|
uau
| i'm not sure what you're asking about | 02:05 |
|
| reflog stores where a particular branch, or your checkout-out HEAD, points to at various times | 02:06 |
| ← Eridius|work left | 02:07 |
| → godlygeek joined | 02:07 |
| ← geckosenator left | 02:07 |
| → piggybox joined | 02: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 message | 02:11 |
|
| if instead of amended commit you'd have a separate fix commit | 02:11 |
|
hagabaka
| sure | 02:12 |
|
uau
| doing something with the same effect would probably be scriptable, but i doubt it would be worth it | 02:12 |
|
| it shouldn't be that common | 02:12 |
|
hagabaka
| i've amended pushed commits a few times | 02:13 |
|
crab
| why? | 02:13 |
|
hagabaka
| because i pushed and forgot that I did | 02: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 commits | 02:15 |
|
hagabaka
| it seems justified to me if I typo a line or forget to add a file before commiting | 02:15 |
| → litage joined | 02:15 |
| ← timocratic left | 02:16 |
|
hagabaka
| and the script doesn't really encourage amending, it's just to make it easier when you amend after pushing | 02:16 |
|
| (if it existed) | 02:16 |
| → johnw joined | 02:20 |
| ← crab left | 02:24 |
|
uau
| if you have further commits after the amended one i think the following should work: | 02:24 |
|
| git rebase -i pushed_branch | 02:25 |
| ← piggybox_ left | 02:25 |
|
uau
| mark the first commit (which should be the amended version) as "edit" | 02:25 |
| ← kelvie_work left | 02:25 |
|
uau
| when git tries to apply it it'll probably cause a conflict, but that doesn't matter | 02:25 |
|
| then do "git checkout amended_commit_sha1 ." | 02:26 |
|
| and "git commit" to create a fix commit | 02: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 branch | 02:32 |
| → kanru joined | 02:32 |
|
uau
| the "pushed_branch" in "git rebase -i pushed_branch" was meant to indicate the version that was actually pushed | 02:33 |
| ← dramsay left | 02:39 |
|
hagabaka
| how do I name pushed_branch? is it the SHA in reflog? | 02:40 |
|
| or the remote? | 02:40 |
|
uau
| remote | 02:41 |
| ← david_koontz left | 02: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 left | 02:43 |
|
uau
| i meant a tracked remote branch | 02:45 |
|
| whose state you'd have in the local repository | 02: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 pushed | 02:45 |
|
hagabaka
| oh | 02: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 joined | 02:49 |
|
uau
| you should have the branch you've worked on checked out when you start that | 02:50 |
| → CodeWar joined | 02:50 |
|
uau
| (including all the further commits you've done) | 02:50 |
|
| that error is because you have uncommitted modifications in your working directory | 02:50 |
| → paltman_ joined | 02:52 |
| → jackdempsey joined | 02:53 |
| ← paltman left | 02:56 |
| ← aroben left | 02:56 |
|
hagabaka
| hmm | 02:57 |
|
| this is weird, this time it keeps saying "everything up to date" when I push | 02:59 |
|
| but diffing the "remote" dir shows difference, and git diff in the working directory is empty | 03: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 happened | 03:03 |
|
| oh because I tried to checkout before | 03:03 |
|
| ok, i started your steps with clean working directory this time, and still got fatal: you need to resolve your current index first | 03:07 |
| ← chieh left | 03:08 |
| ← Sonderblade left | 03: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 necessary | 03:11 |
|
hagabaka
| it gave me the same error before I did that too | 03:11 |
|
uau
| just ignore the confict message if any and write the checkout command | 03:11 |
|
| i'm not sure why you'd get that error though | 03:11 |
| ← cbreak left | 03:11 |
|
uau
| are you sure you included the last '.'? | 03:11 |
| ← \ask_ left | 03:13 |
| → bfrog joined | 03:13 |
| → \ask_ joined | 03:13 |
|
hagabaka
| yeah | 03:15 |
|
| tried again and still that | 03:15 |
| ← cilly left | 03:15 |
|
uau
| which git version do you have? | 03:15 |
|
hagabaka
| 1.5.4.3 | 03:15 |
|
uau
| i don't get any warnings when using the "git checkout SHA1 file/directory" syntax whatever state the tree is in | 03:16 |
|
hagabaka
| oh | 03:16 |
|
| ... | 03:16 |
|
| i didn't include the . | 03:16 |
| ← johnw left | 03:18 |
| → JaapSuter joined | 03: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 joined | 03: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 left | 03: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 left | 03:37 |
|
rtyler
| man, 10.1G VM, 3.3G resident | 03:37 |
| → EiNZTEiN joined | 03:37 |
|
rtyler
| this is fun to watch | 03:37 |
|
uau
| JaapSuter: if by that you mean allowing non-fastforward pushes from the clients | 03: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 one | 03:39 |
|
JaapSuter
| Ah, thanks guys. | 03:40 |
|
rtyler
| spearce: git-http-push | 03: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- > B | 03:41 |
|
rtyler
| I'm watching the apache logs, full of MOVEs and PUTs | 03:41 |
|
JaapSuter
| Server has: A | 03:41 |
|
| Correction, server has A -> C | 03:41 |
| ← litage left | 03:41 |
|
JaapSuter
| I push, non-fastforward, and server does a merge. This creates a new commit D. | 03:41 |
|
| I have: A -> B | 03: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 -> D | 03: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 merge | 03: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)}->D | 03:44 |
|
rtyler
| PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND | 03:44 |
|
| 14997 tyler 26 10 10.1g 3.1g 7996 S 50 80.9 108:54.59 git-http-push | 03:44 |
|
uau
| with two parents for the commit D | 03:44 |
|
rtyler
| spearce: clearly :p | 03:44 |
|
uau
| since it is a merge | 03: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 left | 03: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 joined | 03: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
| it | 03:46 |
|
| it'd be nice if git hooked into gnome-vfs | 03: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 ducks | 03: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 joined | 03:46 |
|
thiago
| http-push could use some CGIs to receive data and do something intelligent | 03: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 does | 03:47 |
|
rtyler
| apache modules are ick | 03: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
| SOAP | 03:48 |
|
| thiago runs | 03: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 joined | 03:48 |
|
uau
| JaapSuter: that's how git does the automatic merge result | 03: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 recorded | 03: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 show | 03:49 |
|
| the user might have created the merge result with his custom algorithm any way he wants | 03:50 |
| ← CodeWar left | 03:51 |
| → ssb joined | 03:52 |
|
thiago
| imyousuf: for REST, you need CGI or Apache module | 03:54 |
|
imyousuf
| Why thiago? | 03:55 |
|
thiago
| I have no idea how CGIs operate with PUT and DELETE commands | 03:55 |
|
spearce
| you can send PUT/DELETE to a CGI. at least apache will certainly do it. | 03:55 |
| → ABCD joined | 03:55 |
|
thiago
| then it should work | 03: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 servlets | 03:56 |
|
spearce
| what's a #@!(!@(!)!@ pita is GET to fetch a pack. :) | 03:56 |
|
thiago
| PROPFIND | 03:56 |
|
| or send in the HTTP headers the meta-data that it needs to generate the pack | 03:56 |
|
imyousuf
| JGit can be used from the servlets to receive pack and unpack at the repo location | 03: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 joined | 03: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_ left | 03: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 work | 03:59 |
|
| less roundtrips | 03: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
| hehe | 04: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 that | 04: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
| haha | 04: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
| k | 04:05 |
| ← chrisb left | 04: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 done | 04:07 |
|
thiago
| rtyler: are you sure it just didn't crash? :-) | 04:07 |
|
rtyler
| no >_> | 04:08 |
| ← ben_h left | 04:08 |
|
rtyler
| updating 'refs/heads/master' | 04:08 |
|
| from 0000000000000000000000000000000000000000 | 04:08 |
|
| to 590b10bf5d069b86a55516fa5322b37606788962 | 04:08 |
|
| sending 185628 objects | 04:08 |
|
| done | 04:08 |
|
| rtyler takes a deep breath | 04:08 |
| → ben_h joined | 04:08 |
|
rtyler
| time to try a clone | 04:08 |
|
JaapSuter
| Thanks everybody. Friendly people in here. Salut! | 04:08 |
|
thiago
| only 185k objects? Are you tracking very large files? | 04:08 |
| ← JaapSuter left | 04:08 |
|
spearce
| rtyler: did it unpack 185k files as loose objects? or upload pack files? | 04:09 |
|
rtyler
| I'm assuming pack files | 04:09 |
| → spb_ joined | 04:09 |
| ← EiNZTEiN left | 04:11 |
| → CodeWar joined | 04:12 |
| ← ben_h left | 04:12 |
| → ben_h joined | 04:13 |
| ← spb left | 04:13 |
| → asdfdsfsd joined | 04:13 |
| spb_ → spb | 04:13 |
| → tiglionabbit joined | 04: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 joined | 04:20 |
| ← irotas left | 04:20 |
|
Eridius
| tiglionabbit: git rm it | 04:20 |
|
| or git add its directory | 04:21 |
|
tiglionabbit
| I tried both | 04:21 |
|
| git add didn't do anything, git rm said I need to use the -r option | 04:21 |
|
| do I really want to git rm -r? | 04:21 |
|
Eridius
| git rm -r is for deleting the contents of directories | 04: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 that | 04:21 |
|
thiago
| just do a git commit -a | 04:21 |
|
tiglionabbit
| huh. I wanted to save some of these changes for a later commit... | 04:22 |
|
Eridius
| so git rm it | 04:22 |
| elliottcable → ec | 04:22 |
| ← ajonat left | 04:22 |
|
Eridius
| you could say `git ls-files -d | xargs git rm` | 04:23 |
| ← Leefmc left | 04:25 |
| → ajonat joined | 04:28 |
| ← tjafk1 left | 04:30 |
| → tjafk1 joined | 04:30 |
| ← CodeWar left | 04:31 |
| → agib joined | 04:32 |
| → sgrimm joined | 04:37 |
| ← queso left | 04:44 |
| → ketralnis joined | 04:47 |
| ← ben_h left | 04:50 |
| → ben_h joined | 04:51 |
| → tiglionabbit_ joined | 05: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 to | 05:02 |
|
Eridius
| I recommend just dropping a .gitignore inside | 05:03 |
|
tiglionabbit_
| empty one? | 05:04 |
|
Eridius
| yeah. or maybe one that matches the log files that your logger will make | 05:04 |
|
tiglionabbit_
| I'd like it to match everything that could be in that directory then | 05:05 |
|
| other than itself | 05:05 |
|
Eridius
| doesn't matter if it matches self | 05:06 |
|
| gitignore is ignored for tracked files | 05:06 |
|
| just put a * in it | 05:06 |
| → lu_zero joined | 05:06 |
| ← ABCD left | 05: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 there | 05:07 |
|
| so a sibling foo will match /foo but not */foo | 05:07 |
| ← thiago left | 05:07 |
|
Eridius
| actually maybe it will match */foo, since * can match nothing | 05:07 |
|
| in any case, it matches /foo | 05:08 |
|
tiglionabbit_
| cool | 05:08 |
| marc_vw → mvw | 05:09 |
| ← krawek left | 05:10 |
| → floppyears joined | 05:10 |
|
jackdempsey
| why use / in that case | 05: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 subdirectories | 05:12 |
|
| so 'foo' matches bar/foo, but '/foo' doesn't | 05:12 |
| → FunkeeMonk joined | 05:13 |
| → warthog9 joined | 05:14 |
| ← joydivider left | 05:15 |
| → Ademan joined | 05:16 |
|
jackdempsey
| oh man, any subdirs huh | 05:19 |
|
| didn't realize that | 05:19 |
|
| i thought it was more that if you said blah.txt that would only match ./blah.txt not foo/bar/blah.txt | 05: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 filename | 05:21 |
|
jackdempsey
| yea. kinda cool | 05:21 |
|
| so foo/* will only match it at ./foo | 05:22 |
|
| if you had bar/foo/baz | 05:22 |
|
| baz won't be ignored | 05:22 |
| → daaku joined | 05:26 |
| → neynenmo joined | 05:26 |
| ← litage left | 05:33 |
| ← sbahra left | 05:36 |
| ← bryanray left | 05:42 |
| ← bobesponja left | 05:43 |
| ← Ademan left | 05:44 |
| → Ademan joined | 05:45 |
| ← igorgue left | 05:50 |
| ← neynenmo left | 05:51 |
| → sris joined | 05:55 |
| → paulttt joined | 05:58 |
| → BabelO joined | 05:59 |
| ← asdfdsfsd left | 06:03 |
| → deavid joined | 06:13 |
| → nud joined | 06:15 |
| → charon joined | 06:15 |
| ← sris left | 06:22 |
| → chieh joined | 06:24 |
| ← markkalderon left | 06:28 |
| ← morphir left | 06:28 |
| jackdempsey → jack_sleep | 06:33 |
| pilif → pilif|away | 06:35 |
| ← jack_sleep left | 06:35 |
| ← chieh left | 06:36 |
| ← Ademan left | 06:39 |
| → Ademan joined | 06:40 |
| → reel_ joined | 06:41 |
| → crab joined | 06:43 |
|
crab
| did anything come of the proposal to make "git branch" able to switch branches too? | 06:44 |
| → icwiener joined | 06:46 |
| ← icwiener left | 06:49 |
| ← nud left | 06:51 |
| → Rustre joined | 06:51 |
| ← spearce left | 06:52 |
| → hein2 joined | 06:52 |
| ← Sho_ left | 06:52 |
| hein2 → Sho_ | 06:52 |
| ← bfrog left | 06:55 |
| ← Ademan left | 06:57 |
| → huyx joined | 06:58 |
| → jackdempsey joined | 07:00 |
| VVSiz_ → VVSiz | 07:11 |
| ← daaku left | 07:11 |
| → Ademan joined | 07:12 |
| → tiglionabbit__ joined | 07:12 |
| ← jackdempsey left | 07:13 |
| ← ben_h left | 07:17 |
| ← SuttoL left | 07:21 |
| → nud joined | 07:21 |
| → barak joined | 07:22 |
| ← FunkeeMonk left | 07:24 |
| ← tiglionabbit_ left | 07:24 |
| ← CodeOfficer left | 07: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 git | 07:26 |
|
| -format-patch to generate a patch file and integrate it manually. BLECH! Any advise? | 07:26 |
|
| sed s/advise/advice/ | 07:27 |
| ← Cope left | 07:30 |
|
cebewee
| barak: use -kk for the cvs checkout, -k for git-cvsimportcommit | 07:30 |
|
| hm, we need an option for git-cvsexportcommit to do updates -kk, also | 07: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_ joined | 07:34 |
| ← brosner left | 07:35 |
| ← Foriskak left | 07: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 keywor | 07:42 |
|
| ds, but that could be worked around.) | 07:42 |
|
pasky
| just as cebewee said? | 07:42 |
| → davidmccabe joined | 07: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__ left | 07:44 |
|
davidmccabe
| Several commits are made to one of them. Can these commits be remade into the other? | 07:44 |
| ← mithro left | 07:45 |
|
crab
| git-format-patch? | 07:46 |
| ← sverrej left | 07:46 |
| → CodeWar joined | 07:46 |
| → mithro joined | 07: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 joined | 07:48 |
|
crab
| barak: sorry, i meant to answer davidmccabe | 07: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 joined | 07: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 somehow | 07: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 rebase | 07:56 |
| → joevandyk joined | 07:59 |
| ← huyx left | 07:59 |
| → Fullmoon joined | 08:01 |
|
fujin
| davidmccabe: can't you git-add -i now? | 08:05 |
|
| interactive line by line | 08:06 |
|
| or is that a to-be-added feature, i forget | 08:06 |
| ← joevandyk_ left | 08:06 |
|
comp
| nope, it works already | 08: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 joined | 08: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 left | 08:13 |
| ← crab left | 08:13 |
| → sverrej joined | 08:14 |
|
Rustre
| hello there | 08: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 changes | 08:15 |
|
| and the latest commits and comments and everything | 08:16 |
|
| but the changes weren't made to my local files it seems | 08:16 |
|
| do i need to do anything special? maybe a "git checkout" or something else? | 08:16 |
| → bentob0x joined | 08: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 :P | 08:17 |
|
| so there's no X export :P | 08:18 |
| → earcar joined | 08: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 front | 08:22 |
|
| does that mean that i need to stage or commit or whatever? | 08:22 |
|
jengelh
| Rustre: git-forest | 08:22 |
|
Rustre
| ? | 08:23 |
|
jengelh
| if you need the history but don't have gitk at hand | 08:23 |
|
Rustre
| oh ... | 08:23 |
|
jengelh
| M is modified | 08:24 |
|
Rustre
| but modified where? | 08:24 |
|
jengelh
| wc | 08:24 |
|
Rustre
| in my working tree? in the branch? | 08:24 |
|
jengelh
| It reminds you that you have modified these files. | 08:26 |
|
Rustre
| oh | 08:26 |
|
| and if i want to "forget" those modifications? | 08:27 |
|
jengelh
| reset --hard | 08:27 |
|
Rustre
| and "squeeze" them with the latest changes from the url i'm pulling from? | 08:27 |
| ← sverrej left | 08:27 |
|
Rustre
| oh... so "git pull" isn't actually updating my local copy | 08:27 |
|
jengelh
| don't use pull if you don't know what's behind it | 08:27 |
| → reel__ joined | 08:27 |
|
Rustre
| i know what is :D | 08:27 |
| → loupgaroublond joined | 08:28 |
|
Rustre
| i modified it on my windows machine, then pushed to the linux box | 08:28 |
| → tiglionabbit_ joined | 08:28 |
|
loupgaroublond
| hi | 08:28 |
|
Rustre
| now i'd like my changes to be applied on the linux box | 08:28 |
|
| but not quite sure how i should do that | 08: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__ joined | 08:30 |
| → _zack joined | 08:30 |
| ← macGerhard left | 08:30 |
| ← mtodd_ left | 08:32 |
| ← CodeWar left | 08:32 |
| → johnw joined | 08:33 |
| → fhobia joined | 08: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_ left | 08: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 branch | 08:46 |
|
| and then just use git-rebase to bring in new changes from the master | 08:46 |
| ← Fullmoon left | 08:46 |
|
johnw
| I assume master will just contain the master template for connect.php | 08:46 |
|
Rustre
| i have no idea how and why to use git-rebase, but i'll check that straight away, thanks | 08: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 commit | 08:47 |
|
| this is opposed to merging, which introduces "merge commits" every time you want to update to the latest code | 08:48 |
|
| in other words, it's like a poor man's Stacked Git, or "quilt", if those mean anything to you | 08:48 |
|
Rustre
| (that doesn't mean anything to me, sorry :/) | 08:48 |
|
| so, in other words | 08:48 |
|
| the workflow would be : | 08:48 |
|
johnw
| in your branch, just type "git rebase master", to bring in changes from your master | 08: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
| yep | 08: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 see | 08:50 |
| → _slacker_ joined | 08:50 |
|
johnw
| it's for private stuff that only you work with, in that case is perfectly legitimate | 08:50 |
|
Rustre
| ok | 08:50 |
|
| i dont quite get why though | 08:50 |
| → mcella joined | 08:50 |
|
Rustre
| i'll read the man page on git rebase | 08:50 |
|
johnw
| because it rewrites history | 08:51 |
|
Rustre
| to understand what it means | 08:51 |
|
johnw
| i talk about it here: http://www.newartisans.com/blog_files/git.from.bottom.up.php | 08:51 |
|
| one of the sections in that document is all about rebase vs. merge | 08:51 |
|
Rustre
| oh, thanks a lot, i'll read that then :D | 08:52 |
| → SuttoL joined | 08:54 |
| → markkalderon joined | 08: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 you | 08:58 |
|
| but i have not used that feature yet | 08:58 |
|
Rustre
| i'll give it a try then, thanks ;) | 08:58 |
| ← ben`afk left | 08:59 |
| ← paulttt left | 09:00 |
| ← carrus85 left | 09:02 |
|
pasky
| uh | 09:03 |
|
| excludesfile? | 09:03 |
|
Rustre
| yup | 09:03 |
|
| there's something written about that in the "gitignore" man page | 09:03 |
|
pasky
| that's just .git/info/exclude, no? | 09:03 |
|
Rustre
| it's a bit different it seems | 09: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 that | 09:05 |
|
| git should ignore. | 09:05 |
|
Rustre
| then i'm back to the start :/ | 09:06 |
|
| dammit | 09:06 |
|
pasky
| what's wrong with going with johnw's suggestion? | 09:06 |
|
Rustre
| probably nothing | 09: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 it | 09:08 |
|
| and there's a shorthand to call git pull --rebase | 09:08 |
|
| so, in the webserver repo, you just commit your local change | 09:08 |
|
| and then keep doing git pull --rebase in the future | 09:08 |
|
loupgaroublond
| does it keep those changes labelled as being on your local branch? | 09:08 |
| → jdq joined | 09:09 |
|
pasky
| labelled? | 09:09 |
|
| I don't understand | 09:09 |
|
jengelh
| meh | 09:09 |
|
| gitweb is broken | 09:09 |
|
pasky
| the usual state | 09:09 |
|
Bombe
| Good morning. | 09:09 |
|
jengelh
| entering a commit id in the serach field won't get me anywhere | 09:09 |
|
pasky
| you put that to the url right away ;) | 09:09 |
|
loupgaroublond
| say, i have 3 patches on origin:master in a branch foo | 09:09 |
|
pasky
| hello bombe | 09:09 |
|
| loupgaroublond: sorry, you lost me right there | 09:10 |
|
| loupgaroublond: or, you mean branch foo is origin:master + 3 patches? | 09:10 |
|
loupgaroublond
| yes | 09:10 |
|
pasky
| origin/master, that is | 09:10 |
|
| ok | 09:10 |
|
loupgaroublond
| so then someone pushes other changes to origin/master | 09:10 |
| → cilly joined | 09:10 |
| → koke joined | 09: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
| uh | 09:12 |
|
loupgaroublond
| but i have to run now | 09:12 |
|
pasky
| hm | 09:12 |
|
loupgaroublond
| i'll play with it later | 09:12 |
|
pasky
| ok | 09:12 |
| → carrus85 joined | 09:12 |
| ← SuttoL left | 09:14 |
| → CodeWar joined | 09:19 |
| → ball_licker joined | 09:21 |
|
ball_licker
| I put on | 09:22 |
| → Fullmoon joined | 09:22 |
|
ball_licker
| East side, south side, west side....I put on | 09:22 |
|
| jezzy baby | 09:22 |
|
| jizzy | 09:23 |
|
pasky
| o.O | 09:23 |
| ← pflanze left | 09:25 |
| → pflanze joined | 09:26 |
| → priidu joined | 09:27 |
| ball_licker → level2tech | 09:28 |
|
Rustre
| johnw: mmm i read part of your pdf, but i'm still a bit lost :/ | 09:28 |
| → njal joined | 09:30 |
| → mstormo joined | 09:31 |
| → pombreda1 joined | 09:31 |
| → SuttoL joined | 09:31 |
| ← markkalderon left | 09:33 |
|
johnw
| rebase carries forward a set of commits as if it were a series of patches | 09:33 |
|
| rewriting the history each time to make it appear as though those patches/commits had just been applied against the new HEAD | 09: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 sense | 09:33 |
|
Bombe
| :) | 09:35 |
| level2tech → level2tech_ | 09:35 |
| → cardioid joined | 09:36 |
| ← johnw left | 09:36 |
| level2tech_ → level2tech | 09:36 |
| ← level2tech left | 09:36 |
| → charon_ joined | 09:41 |
| ← charon left | 09:41 |
| charon_ → charon | 09:41 |
| ← pombreda left | 09:45 |
| → chris2 joined | 09:52 |
| ← joydivider left | 09:54 |
| ← pombreda1 left | 09:54 |
| ← _zack left | 09:59 |
| → pombreda joined | 09:59 |
| → _zack joined | 09:59 |
| ← _zack left | 10:00 |
| → d0k joined | 10:01 |
| → SRabbelier joined | 10:01 |
| → _zack joined | 10:03 |
| → markkalderon joined | 10:07 |
| → dramsay joined | 10:09 |
|
jengelh
| git clone git://git.kernel.org/pub/scm/linux/kernel/torvalds/linux-2.6.git | 10:09 |
|
| fatal: The remote end hung up unexpectedly | 10:09 |
|
| something I dunno about? | 10:09 |
|
| ah a missing git :p | 10: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 after | 10:13 |
|
UukGoblin
| wildfire, oh, cool, will check it out, thanks | 10:13 |
|
loupgaroublond
| don't you mean reset --soft ? | 10:14 |
|
| --hard will modify the working tree | 10:14 |
|
UukGoblin
| yeah, probably | 10: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 left | 10:16 |
|
wildfire
| loupgaroublond, gitsky, yes, of course - my bad | 10:16 |
|
gitsky
| and perhaps a simpler way is to | 10:16 |
|
UukGoblin
| I get the idea, get the changes into the working tree and then add them interactively to index | 10:16 |
|
gitsky
| git checkout commitid:filename | 10:17 |
|
| instead of cherry-pick + reset | 10:17 |
|
| er, make that s/:/ / | 10:17 |
|
UukGoblin
| hmmm, that sounds nice... | 10:17 |
|
gitsky
| oh no | 10:17 |
|
| it will modify the index too -.- | 10:17 |
|
UukGoblin
| ah, yes | 10:17 |
|
gitsky
| so git cat-file blob commitid:filename >filename, I guess | 10:18 |
|
wildfire
| perhaps a 'git-cherry-pick -n <commitid>' solves the issue better? | 10:18 |
|
| no need to reset | 10:19 |
|
UukGoblin
| wildfire, git-cherry-pick -n puts the change into index... | 10:19 |
|
wildfire
| ahh, the man page isn't clear on that | 10: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
| wait | 10:20 |
|
| that's exactly what are we trying to solve | 10:21 |
|
| modifying only your working tree so that you can git add -i | 10:21 |
|
| and select what you want to put into the index | 10:21 |
|
UukGoblin
| correct | 10:21 |
|
gitsky
| if you are after the whole file, the git checkout commitid filename is the simplest way | 10:21 |
|
UukGoblin
| you mean git cat-file | 10:22 |
|
gitsky
| no | 10: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 index | 10:22 |
|
gitsky
| so that you can put only bits of the file into the index | 10:23 |
|
| yes, exactly | 10:23 |
|
| if you just want the whole file, might as well just throw it into the index right away | 10:23 |
|
UukGoblin
| yup | 10:23 |
|
gitsky
| anyway, at least we discovered that git-cherry-pick documentation is apparently buggy | 10: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 index | 10:24 |
|
gitsky
| hmm, it pretty much has to, since cherry-pick in fact does a three-way merge | 10:25 |
|
| I'll send a patch | 10:25 |
|
UukGoblin
| cool, thanks | 10:25 |
|
| hm, actually, it seems that git checkout [<treeish>] <paths> also checks out into index, not only working tree | 10: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 both | 10:28 |
| → lea_w joined | 10:29 |
| → thommey joined | 10:30 |
|
gitsky
| 12:13 < gitsky> it will modify the index too -.- | 10:30 |
|
| that was my point | 10:30 |
|
| that's why you need to use git cat-file if you want to modify only the working tree | 10:31 |
|
UukGoblin
| yes, I was just talking about the manpage for that | 10:31 |
|
| but I think it's better than cherry-pick | 10:32 |
| → whee joined | 10:32 |
|
UukGoblin
| and it says that it actually does git-checkout-index, so you can figure out things from that | 10:32 |
|
gitsky
| <tree-ish> argument can be | 10: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 the | 10:33 |
|
| working tree. | 10:33 |
|
UukGoblin
| yup | 10:33 |
|
gitsky
| that's the "commitid" in my call | 10:33 |
|
UukGoblin
| it's okay then | 10:33 |
|
gitsky
| so it's hopefully fairly clear | 10:33 |
| → cbreak joined | 10:35 |
| ← fhobia left | 10: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 joined | 10:44 |
| ← cbreak left | 10:50 |
| → cbreak joined | 10:50 |
| → powr-toc joined | 10:52 |
| → harinath joined | 10:54 |
| ← reel__ left | 10:54 |
| → reel__ joined | 10:54 |
| ← mstormo left | 10:54 |
| GeckoPie|Sleep → GeckoPie | 10:55 |
| → mstormo joined | 10:57 |
| ← dramsay left | 11:06 |
|
gitsky
| telmich: i don't think so...? i thought gitosis provided its own shell? | 11:08 |
|
| i never used it, though | 11:08 |
| ← Fullmoon left | 11:12 |
| ← reel__ left | 11:13 |
| ← njal left | 11:13 |
| → reel__ joined | 11: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 left | 11:15 |
| → njal joined | 11:15 |
| → rlaing joined | 11:24 |
|
telmich
| gitsky: I read a howto that uses /bin/sh | 11:24 |
|
| gitsky: http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way | 11: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 manually | 11: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 copy | 11:26 |
|
| only from index | 11:26 |
|
telmich
| rlaing: git-rm --cached | 11:27 |
|
rlaing
| ok, thank you | 11:27 |
| ← koke left | 11:28 |
| ← rlaing left | 11:28 |
| → Fullmoon joined | 11:31 |
| → Leefmc joined | 11:33 |
| → janm joined | 11: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 confess | 11:42 |
|
spb
| i tend to use rebase before push, just to avoid merges | 11:43 |
|
| but that's about it | 11: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 it | 11:44 |
|
ndim
| telmich: I have a master branch and add some feature consisting of a bunch of commits | 11: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_ joined | 11:49 |
|
ndim
| Results in less clutter and thus better readability after publication. | 11:49 |
|
telmich
| ndim: ahh, ok | 11:49 |
|
| hmpf, must go.. ndim: sounds interesting, will commen on it later | 11:50 |
|
ndim
| telmich: When the feature-foo branch is OK, I will then push those commits to the public master branch | 11:50 |
| ← raz left | 11:53 |
| → raz joined | 11:53 |
| ← Leefmc left | 11:55 |
| → Aikawa joined | 12:01 |
| → twicthy joined | 12:03 |
|
twicthy
| Hi. I got: permission denied (publickey). The remote end hung up unexpecdedly.. when I tried an: git push origin master to github.com | 12:05 |
|
SRabbelier
| gitsky: do you change your nick every 2 days or what? :P | 12:06 |
| ← SuttoL left | 12:06 |
| → emachado joined | 12:07 |
|
gitsky
| do you have to pick on me three times every day or what? :P | 12:08 |
|
| ;) | 12:08 |
|
| actually my nick on freenode is usually quite stable | 12:08 |
|
| but just was reading some very old #git logs tonight and got nostalgic ;) | 12:08 |
|
SRabbelier
| lol :D | 12:09 |
| → pdherbemont joined | 12:12 |
| ← X-Blade left | 12:14 |
| ← Fullmoon left | 12:14 |
| → gerke joined | 12:17 |
| → lorandi joined | 12:17 |
| → kukks joined | 12:18 |
| → X-Blade joined | 12:19 |
| → sbahra joined | 12:19 |
| → Yuuhi joined | 12:21 |
| ← sbahra left | 12:22 |
| → koke joined | 12:22 |
| → MarcWeber joined | 12:22 |
|
Rustre
| is there a way to ignore changes to a file that have previously been tracked? | 12:24 |
| → [raz] joined | 12:24 |
| → Xyri0 joined | 12:24 |
| → sbahra joined | 12: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 previously | 12: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 joined | 12: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 well | 12:26 |
|
Rustre
| how? | 12:26 |
|
| i'm using git-gui, but couldn't spot this one | 12:26 |
|
[raz]
| hmm i'm confused | 12:27 |
|
MarcWeber
| Rustre: Just click on the icon on the left ni the lower window | 12: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 :P | 12: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.2 | 12: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 push | 12: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 why | 12:29 |
| ← dduncan left | 12:29 |
|
Rustre
| i'll give it a go at upgrading my package then (if possible, i'm using msys git) | 12:29 |
| → ben_h joined | 12:30 |
| ← raz left | 12:30 |
| [raz] → raz | 12:30 |
| → gitte joined | 12:30 |
| ← pygi left | 12:30 |
|
raz
| gitsky, well, i'm happy that it works. just a bit surprised | 12:30 |
| → pygi joined | 12:30 |
|
MarcWeber
| Rustre: http://mawercer.de/test.jpg | 12:30 |
|
Rustre
| url isn't working, is it? | 12:31 |
|
MarcWeber
| no it's not sry | 12:31 |
|
Rustre
| can't find mawercer.de | 12:31 |
|
MarcWeber
| I've stopped apache | 12:31 |
| → EmilMedve joined | 12:31 |
|
MarcWeber
| Rustre: retry | 12:31 |
|
gitsky
| what manpage says that? | 12:31 |
|
| i see that only in the release notes for 1.5.0 | 12:31 |
|
| where it's just said that it is not *expdeected* to work, and the release notes are pretty old stuff | 12:31 |
|
Rustre
| yup | 12:31 |
|
| i definitely don't have the same gui | 12:31 |
|
| oh, wait MarcWeber, i'm getting what you're talking about | 12:32 |
|
| i don't want to "unstage" the file | 12:32 |
|
| i'd like to ignore it | 12:32 |
|
| and not track it anymore | 12:32 |
|
MarcWeber
| Then echo a >> .gitignore should do the trick | 12:32 |
| → foca_ joined | 12:33 |
|
telmich
| re | 12:33 |
|
MarcWeber
| Rustre: Unstage it once, then it will not appear again | 12:33 |
| → lea_w1 joined | 12:33 |
| ← lea_w left | 12:33 |
|
Rustre
| well, it will | 12:33 |
|
| of course | 12:33 |
| ← Xyrio left | 12:34 |
| lea_w1 → lea_w | 12:34 |
| Xyri0 → Xyrio | 12: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 mistakes | 12: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 previously | 12:34 |
|
| yup | 12: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-rm | 12: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 it | 12:35 |
|
| Rustre: just do git-rm --cached <file> | 12:36 |
|
Rustre
| oh ok telmich | 12:36 |
|
| that's what i should do then, thanks a lot MarcWeber and telmich | 12:36 |
|
telmich
| Rustre: no problem, have fun with git ;-) | 12:36 |
| → Arc_ joined | 12:37 |
|
MarcWeber
| I've missed --cached this time.. Will try to remember it | 12:38 |
|
Rustre
| i'm having fun for some time now already telmich | 12: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 left | 12:39 |
| → deavidsedice joined | 12: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 joined | 12: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 history | 12:44 |
|
| Rustre: did you use git-rebase? | 12:44 |
|
Rustre
| yup | 12:45 |
| → DAddYE joined | 12:45 |
|
Rustre
| not sure i did it correctly though | 12:45 |
|
DAddYE
| Hello big world | 12: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 left | 12:48 |
| ← Arc left | 12:48 |
| ← foca left | 12:50 |
| → thiago joined | 12:51 |
| → dramsay joined | 12: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_ left | 12:59 |
| ← dramsay left | 13:01 |
| → dramsay joined | 13:01 |
| ← heycarsten left | 13: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 there | 13:05 |
|
DAddYE
| mmm | 13:05 |
| → LiamH joined | 13: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 :s | 13:08 |
|
DAddYE
| ndim: there is nothing usefull for me | 13:08 |
| → Pistos joined | 13: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 left | 13:09 |
| → FunkeeMonk joined | 13:09 |
| → pombreda1 joined | 13: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: %H | 13: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 :-form | 13: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 commits | 13:12 |
|
| that's actually the news for me | 13:12 |
|
gitte
| gitsky: yes, we can | 13:12 |
|
| ;-) | 13:13 |
| ← lea_w left | 13: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 joined | 13: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 joined | 13: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:%H | 13:16 |
|
jengelh
| except you could just use git-rev-parse :p | 13: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 left | 13:17 |
| → CareBear\ joined | 13:17 |
|
CareBear\
| hello friends | 13: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 joined | 13: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
| heh | 13: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-list | 13: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 left | 13:20 |
|
gitte
| jengelh: same problem!!!!!! | 13:21 |
|
jengelh
| git-rev-list HEAD Makefile | head -n1 | 13: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 output | 13: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 clone | 13: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/91421 | 13: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 control | 13: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 gitster | 13: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.php | 13: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+merge | 13:25 |
| → paltman joined | 13: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 HEAD | 13: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 C | 13: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 myself | 13:29 |
| → litage joined | 13: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 -1 | 13: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 joined | 13:33 |
|
Pistos
| CareBear\: Ugh | 13:33 |
|
CareBear\
| Pistos : I still see them in git diff --cached | 13:33 |
|
| but not in git diff | 13:33 |
|
Pistos
| CareBear\: Phew... I thought you lost them. :P | 13:34 |
|
| Okay, so... isn't it better to merge only on a pristine WC? :P | 13:34 |
|
| on/into | 13: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 --soft | 13:37 |
|
| hm needed a single revision | 13:37 |
|
ndim
| no idea :) | 13:37 |
| → queso joined | 13:37 |
| → vbabiy joined | 13: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 joined | 13:42 |
|
CareBear\
| Pistos : Thanks for the help! :) | 13:42 |
| ← SuttoL_ left | 13:43 |
| → mountie joined | 13:43 |
| ← pflanze left | 13: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: exactly | 13:45 |
|
CareBear\
| no wait. | 13:45 |
|
gitsky
| gitte: corporate environment forcing IE6 on us | 13:46 |
|
| gitte: tough to do anything with that | 13:46 |
|
| or about that | 13: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 project | 13:47 |
|
| but I still need to figure out how much can I talk about it | 13:47 |
| → bryanray joined | 13:48 |
|
CareBear\
| the keyword situation | 13:48 |
|
| gitte so loves NDAs | 13:48 |
|
| gitte cuddles NDAs | 13:48 |
| → warlock_mza joined | 13:49 |
| ← schacon left | 13:51 |
| → juanjoc joined | 13:51 |
| → Aphelion joined | 13:51 |
|
Aphelion
| any reason for a tracked branch to push somewhere unexpected when using just 'git push'? | 13:52 |
| ← carrus85 left | 13:53 |
|
Pistos
| CareBear\: My pleasure. One noob to another. :) | 13:56 |
|
| Anyway, I'm out [of this channel]. | 13:56 |
| ← Sho_ left | 13:56 |
| ← Pistos left | 13:57 |
| → Sho_ joined | 13: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 name | 14: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/name | 14: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 happen | 14:03 |
|
Tv
| Aphelion: have you read .git/config ? | 14:04 |
|
Aphelion
| double-checkin it | 14:05 |
| ← brosner left | 14: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 joined | 14:07 |
| ← deavidsedice left | 14:08 |
| → heycarsten joined | 14:09 |
| ← zewerson left | 14:10 |
| → bryanl joined | 14: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 goal | 14:15 |
|
| dmq: most git users would 1) avoid needing to extract history of an individual file 2) use fetch+merge | 14:15 |
| ← lorandi left | 14:15 |
| → lorandi joined | 14: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 joined | 14: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 file | 14: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 kludge | 14:19 |
| → aroben joined | 14: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 joined | 14:20 |
|
gebi
| is git 1.5.4 useable for gitosis? | 14:20 |
| ← aroben left | 14:20 |
|
gebi
| just gitosis (nothing more) | 14:20 |
|
raz
| gebi, why should it not be? | 14:20 |
| → aroben joined | 14: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 joined | 14: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 server | 14: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 myself | 14:26 |
|
ndim
| dmq: git filter-branch | 14:30 |
| dwave → dwave|w | 14: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 joined | 14: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, poke | 14:36 |
| ← bentob0x left | 14:37 |
| ← jonshea left | 14:38 |
| → G_SabinoMullane joined | 14:40 |
|
dmq
| uh ndim, could you suggest what filter-branch would look like? | 14:40 |
| blowery → ben`afk | 14:42 |
| → cebewee_ joined | 14:46 |
|
cebewee_
| hm, is show-ref the right plumbing command to get a list of all branches? | 14:46 |
| → rdavila joined | 14:48 |
|
ndim
| dmq: the man page has the exact example you are looking for | 14:48 |
| → jackdempsey joined | 14:49 |
|
ndim
| dmq: Oh. Sorry. The man page only has it in reverse. | 14:49 |
| → fade-in joined | 14:49 |
|
dmq
| removing a filename you mean | 14:49 |
|
ndim
| Yupp. | 14:49 |
|
| And you want "removing all filenames but the one", right? | 14:50 |
|
dmq
| yes | 14:50 |
|
| i think i can use --subdirectory-filter | 14: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 joined | 14: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 joined | 14:52 |
|
thiago
| CareBear\: concatenate the two zips together. | 14:52 |
|
| or create a fake tree and run git archive on it | 14: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. :p | 14: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/path | 14: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 left | 14:56 |
|
CareBear\
| yep! | 14:56 |
| → thorny_sun joined | 14:57 |
|
thiago
| what? | 14:58 |
| ← jackdempsey left | 14: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 git | 14:58 |
|
CareBear\
| want to add new things to an old commit | 14: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 well | 14:59 |
| ← ketralnis left | 14: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 rm | 15:00 |
|
litage
| what's the difference between ``git init'' and ``git --bare init'' ? | 15:00 |
| → jonshea joined | 15:00 |
|
thorny_sun
| litage: --bare digs you down to just the .git folder-- it's used for storing a repo-- not actually using it | 15: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 them | 15:01 |
|
litage
| ah | 15:01 |
|
CareBear\
| A repo without working copy | 15:02 |
|
litage
| makes sense | 15:02 |
|
thorny_sun
| exactly | 15:02 |
|
| try it and you'll see | 15:02 |
| ← _zack left | 15:03 |
| → mib_h6p6q9yx joined | 15:03 |
| ← mib_h6p6q9yx left | 15: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 left | 15:04 |
| → SuttoL joined | 15:05 |
|
thorny_sun
| you have to find a place to put it that everyone else can get to | 15:05 |
|
| then you'll all have to push/pull to that repo | 15:05 |
| ben`afk → blowery | 15:05 |
|
ndim
| litage: read/write or readonly? | 15:05 |
|
litage
| ndim: read only | 15:05 |
|
thiago
| thorny_sun: git add .; git commit -a | 15:06 |
|
| rm'ed files get rm'ed | 15:06 |
|
thorny_sun
| thiago: really-- git status tells me otherwise | 15:07 |
|
thiago
| litage: git-daemon if it's read-only | 15:07 |
|
thorny_sun
| thorny_sun: what thiago said-- i thought everyone was gonna be writing | 15:07 |
|
thiago
| thorny_sun: git add .; then run git status -a to see the changes that would be committed with -a | 15:07 |
| → Rich_Morin joined | 15: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 system | 15:09 |
|
| ? | 15:09 |
|
thiago
| thorny_sun: or git status . as well | 15:09 |
|
litage
| Cacheaway: correct | 15:09 |
|
thiago
| thorny_sun: . and -a perform the same thing if you're at the top level | 15:09 |
| ← pombreda1 left | 15:09 |
|
Cacheaway
| because there is a git-only shell available, set that as the default shell for the users, and there you go | 15: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 joined | 15: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 HEAD | 15:11 |
|
Cacheaway
| litage, i don't know anything about it other than what you can find out with man git-shell seems worth looking into | 15:11 |
| → chris2_ joined | 15: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 gander | 15:12 |
|
tokkee
| DAddYE: I don't get that question, sorry... | 15:12 |
| → irotas joined | 15:12 |
|
thiago
| thorny_sun: the same way you undo a commit | 15: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 it | 15:13 |
|
thorny_sun
| k | 15: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
| thanks | 15:14 |
|
Rich_Morin
| I need to interact with a slightly unorthodox git setup and need some clues - http://www.pastie.org/234825 | 15:14 |
| ← chris2 left | 15:14 |
|
Rustre
| thanks a _lot_ for those who helped me this morning using the git rebase feature | 15:14 |
| chris2_ → chris2 | 15:14 |
|
Rustre
| it really rocks, and i feel i'm understanding it a bit better now | 15: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
| yes | 15:17 |
|
broonie
| DAddYE: .git/hooks | 15:17 |
| → patco444 joined | 15: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=1461055 | 15:18 |
| ← patco444 left | 15:18 |
|
thorny_sun
| thiago: ? | 15:18 |
|
Rustre
| Cacheaway: no clue then, i'm a real git noob :s | 15:18 |
| ← jackdempsey left | 15:19 |
|
DAddYE
| broonie: ?? | 15:19 |
|
thiago
| thorny_sun: git-merge-tool | 15:19 |
|
broonie
| DAddYE: That's where you can find it. | 15:20 |
| ← Aphelion left | 15:21 |
|
DAddYE
| broonie: there isn't for me | 15:21 |
| → schacon joined | 15:27 |
|
Cacheaway
| Rustre: thanks. Anyone else know why post-update would work when run manually, but fail when invoked by git? | 15:27 |
| foca_ → foca | 15:29 |
|
ciaran
| can I set git-diff to not display ^M when showing a file with mixed line-endings? | 15:31 |
| → rdavila joined | 15:31 |
|
DAddYE
| post-receive are called two times if I do a push? | 15:32 |
| → davidfetter joined | 15:32 |
| ← markkalderon left | 15:32 |
|
thiago
| ciaran: you shouldn't have mixed line-endings | 15:32 |
|
ciaran
| I know | 15:32 |
|
thiago
| ciaran: CRLF is fine, LF is fine. Both isn't. | 15:33 |
|
| so you should fix the file. | 15:33 |
| ← CareBear\ left | 15: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 joined | 15:34 |
| → hobbes006 joined | 15:34 |
| → [raz] joined | 15:35 |
| → sverrej joined | 15:36 |
|
bremner
| _slacker_: you read the man page? | 15:36 |
| ← Rich_Morin left | 15:36 |
|
_slacker_
| bremner: yes, but don't know why the -r/--revision flag doesn't works for me | 15: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 fro | 15: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 :s | 15: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 option | 15:38 |
|
thiago
| _slacker_: the -r option has to point to a revision that does exist at the path you're trying to clone | 15:38 |
|
| i.e., an actual commit that touches that path | 15:38 |
|
Rustre
| hobbes006: i might be able to help you out on this one, as i was struggling with it this morning :P | 15:38 |
|
hobbes006
| Rustre: Thanks! :) | 15:38 |
|
Rustre
| hobbes006: here's how i did it : i have a central repository, for convenience | 15:39 |
|
| on a backuped server | 15:39 |
| ← cilly left | 15:39 |
|
| hobbes006 is listening intently. | 15:39 |
|
Rustre
| and i push to this server from my "local" repository on my developent PC | 15:39 |
|
_slacker_
| thiago: yes yes, it exists | 15:40 |
| → lea_w joined | 15:40 |
|
Rustre
| i'm doing web development, and on my development PC, i have a settings file which will "connect" to my local mysql DB | 15: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 develop | 15:40 |
|
| now, i need to "roll out" my website from time to time on the production web server | 15:40 |
|
hobbes006
| Rustre: do you happen to be using django ? :p | 15:40 |
|
Rustre
| nope, not yet, but i should/will | 15: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 left | 15:41 |
|
Rustre
| (and i'm new to django too, but i've been playing around with it for some time now) | 15:41 |
|
| anyway | 15:41 |
|
| on the production server, here's how i rolled out : | 15:41 |
| → koke_ joined | 15:42 |
|
Rustre
| i first did a "git clone" from my central repo, in a "local" repo (on the web server) | 15:42 |
|
| ie wwwtemp | 15:42 |
|
hobbes006
| right | 15:42 |
|
Rustre
| i then copied everything from wwwtemp to the real www folder | 15:42 |
|
| (included the .git folder and everything) | 15:42 |
|
hobbes006
| riht | 15:42 |
|
Rustre
| now i have a repository in www on the production server | 15:43 |
|
| with the "wrong" settings file | 15:43 |
|
hobbes006
| right | 15:43 |
|
Rustre
| but all i need to do then is to modify locally the settings file | 15:43 |
|
| then commit it | 15: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 |
|
| right | 15:43 |
|
Rustre
| now, each time i need to update my web production server : | 15:43 |
| ← thorny_sun left | 15:44 |
|
hobbes006
| ? | 15:44 |
|
Rustre
| i first push from my local dev PC to the central repo | 15:45 |
|
| and i pull from the prod server | 15:45 |
|
| it'll merge the changes from the central repo | 15:45 |
|
| into the local "prod" repo | 15:45 |
|
| see what i mean? | 15:45 |
|
hobbes006
| hmm... | 15:46 |
|
| cant we just use .gitignore and .git/info/exclude somehow. | 15:46 |
| → k0001 joined | 15:46 |
|
Rustre
| just a sec | 15:47 |
| ← raz left | 15:48 |
| [raz] → raz | 15:48 |
| → Strogg joined | 15:48 |
|
Rustre
| sorry, talking with the boss | 15:48 |
|
gitsky
| hobbes006: .gitignore and .git/info/exclude concern only _untracked_ files | 15:48 |
|
Rustre
| gitsky: hobbes006 : exactly, that's what i figured the hard way this morning | 15: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 file | 15: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 left | 15:50 |
|
hobbes006
| yes. | 15:50 |
|
| but how do i exclude it ? | 15:50 |
| → zawir joined | 15: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 |
|
| well | 15:50 |
|
hobbes006
| it automatically adds everything downwards from the $GIT_DIR. | 15:50 |
|
Tv
| hobbes006: echo /settings.py >>.gitignore | 15:50 |
|
Rustre
| first add it to the .gitignore file | 15:50 |
|
hobbes006
| ok | 15:50 |
| ← charon left | 15:50 |
|
hobbes006
| already did | 15: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 it | 15:51 |
|
Rustre
| see what i mean? | 15:51 |
| ← samjam left | 15:51 |
|
hobbes006
| right | 15:51 |
|
Rustre
| the .gitignore and the others only prevent adding files to the repo | 15:51 |
|
hobbes006
| git rm --cached settings.py | 15:51 |
|
Rustre
| once they're added, they will always be tracked (until you untrack them with git rm --cached...) | 15:51 |
|
hobbes006
| AHHHHHHHHHH | 15:51 |
|
Rustre
| the --cached means "only remove it in the index/repo/whatever, not on the filesystem | 15:52 |
| ← redondos left | 15:52 |
|
Rustre
| if you don't put --cached, it'll remove it _also_ on the FS | 15: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 :P | 15:52 |
|
hobbes006
| is it possible to specify that settings.py IS tracked in branch A | 15:52 |
|
| but NOT tracked in branch B ? | 15:52 |
|
| all on the same machine. | 15:52 |
|
Tv
| of course it is | 15:53 |
|
Rustre
| hobbes006: git rm it only on branch B i guess | 15:53 |
|
Tv
| branches aren't really related to each other in any way (apart from possibly sharing history) | 15:53 |
|
hobbes006
| i see | 15: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.py | 15:54 |
| ← Strogg left | 15:54 |
|
hobbes006
| when i am in branch B, my .gitignore file is simply blank. nothing stated there. | 15:54 |
| → bdiego joined | 15:54 |
|
hobbes006
| do i "git rm --cached .gitignore" in order to achieve this ? | 15:55 |
| → Strogg joined | 15:55 |
| → ben_h_ joined | 15:55 |
| → DAddYE joined | 15:55 |
| Arc_ → Arc | 15:56 |
|
Rustre
| errrr | 15:56 |
| ← koke_ left | 15:56 |
|
Rustre
| i wouldn't change the .gitignore file | 15:57 |
|
| i would leave it as is (with the settings.py in it) | 15:57 |
|
hobbes006
| ok | 15:57 |
|
DAddYE
| Any can help me? Why this hook send me two mail? http://git.pastebin.com/d38583afb | 15:57 |
|
Rustre
| as it won't be taken into account if the settings.py file is already tracked, as said before | 15:57 |
|
| OR, you could of course modify the .gitignore file differently on each branch | 15:57 |
| ← koke left | 15:57 |
|
Rustre
| i guess there's no problem at all with that, the .gitignore is just tracked as any other file | 15: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 A | 15:58 |
|
ciaranm
| Cacheaway: it's to make the baby jesus cry | 15:58 |
|
gitsky
| otherwise a year in the future, you'll get very confused about this for sure :) | 15:58 |
|
| Cacheaway: yes | 15:59 |
|
DAddYE
| Any can help me? Why this hook send me two mail? http://git.pastebin.com/d38583afb | 15:59 |
|
gitsky
| though the Modern Shiny Way is to git --git-dir=... | 15:59 |
|
Cacheaway
| thanks | 15:59 |
|
| i was running git commands in my post-update | 16:00 |
| ← lorandi left | 16: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 message | 16: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 in | 16:02 |
|
DAddYE
| without my template | 16:02 |
|
gitsky
| UukGoblin: our great gitster guru spoke: | 16:02 |
|
| True, and false ;-) Just "unstage" first in your "git add -i" session and | 16:02 |
|
| then add only the necessary pieces back to the index (alternatively you | 16: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 basic | 16:03 |
|
| DAddYE: figure out with what parameters is it called each time, etc. | 16:03 |
| ← ben_h left | 16:03 |
|
DAddYE
| gitsky: mmmm | 16:04 |
|
| resolved | 16:04 |
|
| ! | 16:04 |
|
| Ive another ook... update! | 16:04 |
|
gitsky
| i think it will just behave like that randomly ;p | 16:04 |
|
| based on how many branches you push, if you push any tags along or whatever | 16:04 |
|
| but maybe not | 16:04 |
| → jamie_alm joined | 16:05 |
|
UukGoblin
| gitsky, cool :-) | 16:05 |
|
| gitsky, did cherry-pick's manpage patch got approved? :-) | 16:05 |
| → markkalderon joined | 16:05 |
| ← jamie_alm left | 16:06 |
| → krawek joined | 16:06 |
| → jamie_alm_ joined | 16:06 |
| → jonshea_ joined | 16:06 |
| blowery → ben`afk | 16:07 |
|
jamie_alm_
| bah, stupid internet | 16:07 |
| → lorandi joined | 16:08 |
| → koke joined | 16:09 |
| → yofel joined | 16:10 |
| ← sverrej left | 16:11 |
| ← cbreak left | 16:13 |
| → fhobia joined | 16:13 |
|
gitsky
| UukGoblin: yes | 16:16 |
|
UukGoblin
| nice | 16:17 |
| aroben → aroben|lunch | 16:18 |
| ← \ask_ left | 16:20 |
| ben_h_ → ben_h | 16:20 |
| ← jonshea left | 16:23 |
| → xinming_ joined | 16: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_ joined | 16: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 ENOENT | 16:27 |
|
xinming_
| Tv: But git-remote show origin tells me the right path | 16:27 |
| ← cebewee_ left | 16: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 be | 16:28 |
|
Tv
| xinming_: don't ask *me*, ask everyone | 16: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 fail | 16:29 |
| → rtomayko joined | 16:29 |
| → ben_h__ joined | 16: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 happening | 16:29 |
| → jerbear joined | 16:29 |
| → icwiener joined | 16:30 |
| ← reel__ left | 16: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 exists | 16:30 |
|
gitsky
| hmm, so silly git newbie question | 16: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 left | 16:31 |
|
Tv
| gitsky: git status? | 16:31 |
|
gitsky
| # unmerged: sub1 | 16:31 |
|
| that's not very informative | 16:31 |
|
| I know that it's unmerged | 16:31 |
|
| I want to know details | 16: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 sha1s | 16:32 |
|
| the thing is, sub1 is nothing you could open in an editor | 16:32 |
| → timocratic joined | 16:32 |
|
Tv
| gitsky: then i think you do need ls-files | 16:32 |
|
gitsky
| hmf | 16:32 |
|
| thanks | 16:32 |
|
xinming_
| Tv: hmm, I'll check that | 16: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 :P | 16:33 |
|
| git mergetool is only about text, no? | 16:33 |
|
Tv
| the things you hook into mergetool get all the possible alternatives | 16:33 |
|
| nope | 16: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 left | 16:33 |
|
gitsky
| I see | 16:34 |
|
| so this might work on binary files | 16: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 input | 16:35 |
| → zed_DX joined | 16:35 |
|
gitsky
| docs say they just get the three files | 16:36 |
|
Tv
| gitsky: merge base, left, right, i believe -- how is that not sufficient? | 16:36 |
| ← icwiener left | 16:39 |
| → sergiodj joined | 16:39 |
|
gitsky
| Tv: as I said, sub1 is not a file | 16:40 |
|
| which is something that makes mergetool profoundly unhappy ;) | 16:40 |
|
Tv
| gitsky: what, then? | 16:40 |
|
gitsky
| a submodule | 16:40 |
|
Tv
| ahhh | 16:40 |
| → icwiener joined | 16:40 |
|
Tv
| yeah i don't expect anything to merge submodule HEAD changes nicely | 16:41 |
|
| mergetool could provide you more info; e.g. git diff gives you sha and mode etc | 16:41 |
|
| would just need to be backwards compat | 16:41 |
| ← ben_h left | 16:41 |
| → markkald_ joined | 16:41 |
| ← markkalderon left | 16:42 |
| → earcar joined | 16:42 |
| → CodeWar joined | 16:43 |
| ← SuttoL left | 16:44 |
| → cbreak joined | 16:45 |
| → sverrej joined | 16:46 |
| ben`afk → blowery | 16:46 |
| ← ben_h_ left | 16:46 |
| blowery → blowery`afk | 16:47 |
| blowery`afk → blowery | 16:47 |
| cbreak → cbreak|afk | 16:47 |
| → SuttoL joined | 16:47 |
| → asdfdsfsd joined | 16:48 |
| ← fhobia left | 16:48 |
| ← koke left | 16:50 |
| → koke joined | 16:51 |
| ← hobbes006 left | 16:56 |
| ← aroben|lunch left | 16:57 |
| ← jonshea_ left | 16:59 |
| ← SRabbelier left | 17:02 |
| ← litage left | 17:03 |
| ← kanru left | 17:04 |
| ← CodeWar left | 17:05 |
|
argonel
| does git know about xattrs? | 17:05 |
| ← warlock_mza left | 17:07 |
|
gitsky
| no | 17:07 |
|
argonel
| pity | 17:10 |
| → aroben joined | 17: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 left | 17: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 joined | 17:13 |
|
ToxicFrog
| (or, well, ok, I don't have to, but it would be dickish not to) | 17:13 |
| → aroben_ joined | 17: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 mirror | 17:13 |
|
ToxicFrog
| True, but I do use git for version control on both platforms I support | 17:14 |
| → hawking joined | 17: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 support | 17:14 |
| ← kergoth`work left | 17:15 |
|
lbt
| I used git pull to get a copy of the kernel and then git-fetch -vt to update it periodically | 17:15 |
| ← aroben_ left | 17:15 |
|
lbt
| this latest fetch didn't work | 17:15 |
|
| any ideas? | 17:15 |
| → aroben_ joined | 17:15 |
|
ToxicFrog
| argonel: I don't. Deliberately introducing incompatibility makes one just as bad as MS. | 17:15 |
| gitster → paster | 17: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 face | 17:16 |
|
| gitsky doesn't understand what the problem is | 17:17 |
| → shingo joined | 17: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 joined | 17:18 |
| → ijcd joined | 17:19 |
| → cilly joined | 17: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 all | 17:19 |
|
| run in wine. | 17:19 |
|
gitsky
| lbt: yes, but gotta run now | 17:19 |
|
| paster: huh? | 17:19 |
|
lbt
| damn - OK | 17:19 |
|
| http://pastebin.com/d484a124d | 17:19 |
|
paster
| "unmerged: sub1" ;-) | 17:19 |
| ← hawking left | 17:19 |
| paster → gitster | 17:20 |
|
gitsky
| gitster: yes but ls-file sis plumbing | 17:20 |
|
| I mentioned it in my question | 17: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: lol | 17:20 |
|
lbt
| err v2.6.26 was released :) | 17:20 |
| → hawking joined | 17: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 setup | 17:21 |
|
gitsky
| lbt: first make sure it's on the server | 17:21 |
|
| use git ls-remote | 17:21 |
| ← hawking left | 17: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 left | 17:24 |
|
lbt
| Here's my setup http://pastebin.com/d1cc1c7d0 | 17:24 |
| → tcoppi joined | 17:24 |
|
lbt
| I have a local machine with a copy of Linus' git repo | 17:24 |
| → hawking joined | 17:24 |
|
lbt
| I then clone from that machine to other local machines | 17:24 |
|
| normally (last 18 months+) this has been fine | 17: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, insanity | 17: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/d484a124d | 17:26 |
|
| yep that's my local server, elm | 17:26 |
|
uau
| are you sure the tag is on THAT server? | 17:26 |
| ← ben_h__ left | 17:26 |
|
uau
| that 2.6.26 was released is obviously no reason to think that YOUR server would have the tag | 17: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 left | 17:26 |
|
lbt
| git tag | grep 26 shows v2.6.26 | 17:26 |
|
| *but* | 17:26 |
|
| git fetch -vt doesn't | 17:27 |
| ← gitte left | 17:27 |
|
ToxicFrog
| Aah. | 17:27 |
|
lbt
| http://pastebin.com/d484a124d | 17:27 |
| ← pdherbemont left | 17: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/y | 17:27 |
|
lbt
| and I don't commit to my server (well, not this one) | 17:28 |
| ← markkald_ left | 17:28 |
|
lbt
| it's supposed to be a clean pull of Linus' and any stable releases (no merges should be needed) | 17:28 |
| ← aroben left | 17:28 |
| → kergoth`work joined | 17:28 |
| ← hawking left | 17:29 |
|
lbt
| I am on git --version 1.5.6.2 | 17:29 |
|
| and 1.5.6.1 | 17:29 |
| → hawking joined | 17:29 |
|
lbt
| s/.1// | 17:30 |
| → kanru joined | 17:30 |
| ← DAddYE left | 17:30 |
| ← lbt left | 17:31 |
| → bobesponja joined | 17:32 |
| → p4tux joined | 17:32 |
| → _graham_ joined | 17:32 |
| ← Aikawa left | 17:34 |
| → joydivider joined | 17:34 |
| ← deavid left | 17:36 |
| → tommorris_ joined | 17:37 |
| ← hawking left | 17:39 |
| → sverrej_ joined | 17:43 |
| ← emachado left | 17:43 |
| → sergio__ joined | 17:43 |
| ← sergiodj left | 17:43 |
| → subtleGradient joined | 17:45 |
| → emachado joined | 17: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 me | 17:45 |
|
subtleGradient
| when sending people patches, how do you `git format-patch` multiple commits into a single patch? | 17:45 |
| ← Rustre left | 17: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! Thanks | 17: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 suboptimal | 17:48 |
| → nud joined | 17: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 twice | 17:50 |
| → _zack joined | 17:50 |
|
cnk
| that sounds right | 17: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 patch | 17:51 |
|
| I would love to find just such a site | 17:51 |
|
subtleGradient
| cnk: the topic mentions http://www.gitcasts.com/ | 17:52 |
|
| I'm checking that out now | 17:52 |
|
cnk
| so far I think those are all just the peepcode screen cast recut into separate episodes | 17:53 |
|
| I have watched those but still missing something | 17: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 left | 17:54 |
|
cnk
| jast: thanks that might be nice. Though I am more concerned with just getting stuff over, less concerned about history and granularity | 17: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/uml | 17:56 |
| ← tommorris left | 17:56 |
|
MarcWeber
| jast: :) yay thanks | 17: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_ joined | 17:57 |
|
jast
| i'll be back in a couple of minutes, then i'll try and answer that | 17: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-contributes | 17: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] joined | 17: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 fork | 17:59 |
| → johnevans joined | 18:00 |
|
pygi
| subtleGradient, I think first line on that page says "Dont do" what cnk did :p | 18:00 |
|
subtleGradient
| LD | 18:00 |
| ← koke left | 18:00 |
|
subtleGradient
| :D | 18:00 |
| → koke joined | 18:00 |
|
uau
| hmm running "git gc" on a repository that was cloned from a local one created 24000 loose objects | 18:00 |
|
subtleGradient
| but what is the recommended way to get rid of a password file or whatever from all history? | 18:01 |
| → Eridius|work joined | 18: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 new | 18:01 |
| ← koke left | 18:02 |
| → jamessharp1 joined | 18: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 left | 18: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 left | 18:04 |
|
meyering
| down to just 5MB, which sounds like it's too small to be valid | 18:04 |
| → deavid joined | 18:05 |
|
pygi
| subtleGradient, : | 18:05 |
|
| git-filter-branch --tree-filter 'rm -f testme.txt' HEAD | 18:05 |
|
| git reset --hard | 18:05 |
|
| perhaps? :) | 18:05 |
|
subtleGradient
| pygi: you lost me :[ | 18:05 |
|
pygi
| cnk, look above ^_^ | 18:05 |
|
subtleGradient
| ahh, got it | 18:06 |
|
cnk
| so the first is what I did. But what is the reset --hard? | 18:06 |
| ← _slacker_ left | 18:06 |
|
MarcWeber
| cnk: reset branch to given hash --hard means also reset working directory | 18:07 |
| → DrFrasierCrane joined | 18:07 |
| → CodeOfficer joined | 18: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 changes | 18:08 |
| → ketralnis joined | 18:08 |
| ← ketralnis left | 18:08 |
| → ketralnis joined | 18:09 |
| ← Fullmoon_ left | 18:09 |
| → Fullmoon_ joined | 18: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 left | 18:11 |
|
gitsky
| branch is an abstract and ambiguous term | 18:11 |
|
| conceptually, fork might be a branch | 18: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-branch | 18:12 |
|
gitsky
| but not in the sense normally used in git | 18: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 joined | 18: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 joined | 18:13 |
|
pygi
| (sorry for being amazingly slow, am writing) | 18:14 |
|
subtleGradient
| we forgive you | 18:14 |
|
| _this_ time | 18:14 |
| ← Fullmoon left | 18:14 |
| → bughunter2 joined | 18:14 |
|
bughunter2
| hey, can someone check this problem: http://marc.info/?l=git&m=121586372728355&w=2 | 18:15 |
|
| i've emailed about that a while ago, still couldn't figure it out | 18: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 branches | 18: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 github | 18:16 |
|
| would it be appropriate when I want my working branch merged into the github branch to use rebase? | 18:17 |
| ← joevandyk left | 18:17 |
|
subtleGradient
| cnk: never rebase a branch that has ever been pushed | 18: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 left | 18:18 |
|
subtleGradient
| I may be wrong, but that's how I understand it | 18: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 branch | 18: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 joined | 18:19 |
| ← Bryson left | 18:19 |
| ← hawking left | 18: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 github | 18:19 |
| → Bryson joined | 18: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 up | 18:20 |
|
| cnk: that's how I do it, yet | 18:20 |
|
Eridius|work
| subtleGradient: actually, cnk's rebasing would work fine | 18: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 me | 18:20 |
|
Eridius|work
| since he'd be rebasing his local working branch on top of the github-tracking branch | 18:20 |
|
| Pistos: I would expect your shell to only set up the right PATH in an interactive shell anyhow | 18:21 |
| → hawking joined | 18:21 |
|
Eridius|work
| you can use the --upload-pack command to pass the non-standard path | 18: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 not | 18:22 |
|
| and since I've been pushing out both branches the whole time to different remotes | 18:22 |
|
Pistos
| Eridius|work: Right, that does seem to be the case, because my interactive shell can find it. | 18:23 |
| sergio__ → sergiodj | 18: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 branch | 18:26 |
| → drizzd_ joined | 18:27 |
| → SuttoL joined | 18:28 |
| ← SuttoL left | 18:28 |
| ← Bryson left | 18:29 |
| → Bryson joined | 18:29 |
| ← jamie_alm_ left | 18:29 |
| → jamie_alm joined | 18:29 |
| → kelvie_work joined | 18:30 |
| ← rdavila left | 18:30 |
| ← powr-toc left | 18:33 |
| ← warthog9 left | 18:33 |
| → queso_ joined | 18:34 |
| → koke joined | 18:36 |
| → chrisb joined | 18:37 |
| ← drizzd left | 18:37 |
| → david_koontz joined | 18:38 |
| queso_ → queso|away | 18:39 |
| ← FH` left | 18:40 |
| → vintrepid joined | 18:42 |
| → FH` joined | 18:43 |
| ← bughunter2 left | 18: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 left | 18:43 |
|
Pistos
| I guess I can just symlink in /usr/bin or something... | 18:43 |
| ← queso|away left | 18:43 |
| ← queso left | 18:43 |
|
Eridius|work
| Pistos: curious | 18: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 left | 18:49 |
|
| davidfetter waves to cody | 18:49 |
|
davidfetter
| oops. mischan. d'oh | 18:50 |
|
Eridius|work
| Pistos: what if you edit your .bashrc? | 18:51 |
| ← chris2 left | 18:53 |
|
Pistos
| Eridius|work: I did. Doesn't seem to help. | 18:53 |
|
Eridius|work
| hmm | 18: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 |
|
| Oh | 18:54 |
|
| I see. | 18:54 |
|
Eridius|work
| oh clone | 18: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
| yes | 18:54 |
| → kumbayo joined | 18: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.html | 18:55 |
|
Eridius|work
| oh wait, I'm still confusing myself | 18:55 |
|
| the manpage is confusing me, actually | 18:55 |
|
| it is supposed to be the path to git-upload-pack | 18:55 |
|
Pistos
| Anyway, it still doesn't help. | 18:55 |
| → warthog9 joined | 18:55 |
|
Eridius|work
| strange | 18:55 |
|
Pistos
| Hrm, alright. | 18:55 |
|
| git clone --upload-pack /path/... right? | 18:56 |
|
Eridius|work
| yes | 18:56 |
| ← asdfdsfsd left | 18:56 |
|
Pistos
| Bizarre. | 18:56 |
| → [tla] joined | 18: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 left | 18: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. :P | 18:59 |
|
ToxicFrog
| Hmm. Which man page? | 19:00 |
|
Pistos
| http://www.kernel.org/pub/software/scm/git/docs/git-clone.html | 19:00 |
|
ToxicFrog
| Typically it's -x foo or --long-x=foo | 19:00 |
|
Pistos
| Anyway, that didn't help. | 19:00 |
|
gitsky
| lol, feaping creaturism | 19:01 |
| → SRabbelier joined | 19:02 |
|
Pistos
| This thread seems to discuss the issue What's cooking in git.git (topics) | 19:06 |
|
| er | 19:06 |
|
| http://thread.gmane.org/gmane.comp.version-control.git/85705 | 19:06 |
| → ciaran joined | 19:08 |
| ← nud left | 19:09 |
| → tomas_ joined | 19:10 |
| → alfaaprimo joined | 19:10 |
| → redondos joined | 19:10 |
| ← krawek left | 19:10 |
| tomas_ → tomascejka | 19:11 |
| ← tomascejka left | 19:12 |
| → krawek joined | 19:12 |
| ← subtleGradient left | 19:12 |
| → tomascejka joined | 19: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. :P | 19: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 -v | 19:16 |
|
henr_k
| Pistos: excellent! thank you! \o/ | 19:17 |
| ← CodeOfficer left | 19:17 |
|
ciaranm
| Tv: ah, no single command then? thanks | 19:17 |
|
gitsky
| yay, patchbomb'd! | 19:17 |
|
| now off I go | 19:17 |
| ← tomascejka left | 19:18 |
|
Pistos
| This just feels like buggy behaviour. :( | 19:19 |
|
gitsky
| then complain on the list? | 19:19 |
| → EiNZTEiN joined | 19: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 left | 19:22 |
| ← bryanl left | 19:24 |
| → ennemy joined | 19:25 |
| ← ennemy left | 19:26 |
| ← [tla] left | 19:29 |
| → elight joined | 19:34 |
| ← Pistos left | 19:39 |
| ← Fullmoon_ left | 19:41 |
| ← johnjosephbachir left | 19:42 |
| ← Ademan left | 19:43 |
| ← vintrepid left | 19:44 |
| → Fullmoon joined | 19:49 |
| → Ademan joined | 19:50 |
| ← sgrimm left | 19:50 |
| → Galaxor joined | 19: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 joined | 19: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 work | 19:58 |
|
| that only downloads it so it's available with the name "FETCH_HEAD" without automatically creating any local branch for it | 19: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 branches | 20:00 |
| → paulttt joined | 20:00 |
|
gcj
| yeah i think i'd like to track the remote branch | 20:00 |
|
| ok i did: git remote add git://git.kernel.org/pub/scm/linux/kernel/git/djbw/xscaleiop.git misc | 20:01 |
|
| that doesn't give me any files though | 20:01 |
|
| and git fetch gives an error | 20:01 |
|
| (i want to track the misc branch) | 20:02 |
|
uau
| that command seems to be missing the name you give to the remote | 20:02 |
| ← earcar left | 20:02 |
|
uau
| is "misc" the name of the branch you want to track? | 20:02 |
|
gcj
| yep | 20:02 |
|
| reading man git-remote now | 20:03 |
| ← Galaxor left | 20:05 |
| → johnjosephbachir joined | 20:08 |
| ← drizzd_ left | 20:08 |
| → drizzd joined | 20:09 |
| → queso joined | 20:09 |
| ← Fullmoon left | 20:12 |
| ← eikonos left | 20:14 |
| ← koke left | 20:16 |
| → koke joined | 20:17 |
| → [raz] joined | 20:19 |
| ← DrFrasierCrane left | 20: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 yes | 20:25 |
|
Eridius|work
| gc won't remove objects newer than 2 weeks, though | 20:26 |
|
ciaranm
| ach, i can wait two weeks | 20:26 |
|
| i just don't want it lying around forever | 20:26 |
|
Eridius|work
| `git prun` | 20:27 |
|
| *prune | 20:27 |
| → sgrimm joined | 20:27 |
| ← krawek left | 20:29 |
| ← janm left | 20:31 |
| ← raz left | 20:31 |
| [raz] → raz | 20:31 |
| → Lars_G joined | 20:31 |
|
Lars_G
| He.... HOLY F.... | 20:32 |
|
| Wow this channel is full! | 20:32 |
|
| Lars_G cowers in a corner | 20:32 |
|
Eridius|work
| full? how can a channel be full? | 20:32 |
|
| Eridius|work looks vaguely menacing | 20:32 |
| → krawek joined | 20:32 |
|
gcj
| uau, ok i think i want the clone model | 20: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.git | 20: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 now | 20:33 |
| → Eludias joined | 20:34 |
| blowery → blowery`afk | 20:36 |
|
Lars_G
| I want to do something like this http://show.degopro.com/branches.png | 20: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 b | 20:37 |
|
gcj
| ToxicFrog, it's a kernel tree, it might be big | 20: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 merged | 20:38 |
|
gcj
| that's why i just want to fetch one branch | 20:38 |
|
Eridius|work
| Lars_G: that branch graph looks like a fairly normal situation | 20:38 |
|
ToxicFrog
| That's probably it, then | 20:38 |
|
Lars_G
| is that doable? | 20:38 |
|
uau
| 'git remote' should return immediately | 20:38 |
|
ToxicFrog
| uau: not with -f | 20: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 graph | 20:38 |
|
gcj
| ok it finished now, thanks :) | 20:38 |
|
Lars_G
| Eridius|work: correct | 20: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 it | 20:39 |
|
gcj
| doesn't git fetch normally give some progrss indication? | 20:39 |
|
ToxicFrog
| gcj: pull does, I'm not sure if fetch does | 20: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 out | 20:40 |
|
Eridius|work
| normal merges will work | 20:41 |
|
| unless you edit that hunk again | 20:41 |
|
| Lars_G bows | 20:41 |
|
Lars_G
| It's hard to get your mind around it's working manners, but git rules | 20:41 |
|
Eridius|work
| heh | 20:42 |
|
Lars_G
| Ah well I come from cvs and then svn, git is very different in some aspects from them | 20:43 |
|
| :) | 20:44 |
| ← X-Blade left | 20:44 |
|
Eridius|work
| indeed | 20:45 |
| → X-Blade joined | 20:45 |
| → Arc_ joined | 20:48 |
| ← davidfetter left | 20:53 |
| ← Ademan left | 20:54 |
| → Ademan joined | 20:54 |
| ← harinath left | 20:54 |
| → tusho joined | 20:55 |
|
tusho
| If I add a file to .gitignore that's already in the repo, is it removed? | 20:55 |
|
Eridius|work
| no | 20:55 |
|
tusho
| What do I do to remove it without removing my actual copy of the file then | 20:56 |
|
Eridius|work
| git rm --cached file | 20:56 |
|
tusho
| What if it's a directory? | 20:56 |
|
| Will that still work? | 20:56 |
| → robinr joined | 20:56 |
|
Eridius|work
| git rm --cached -r dir | 20:57 |
|
tusho
| OK | 20:57 |
|
| Thanks | 20:57 |
| ← Arc left | 21:01 |
| → earcar joined | 21:02 |
| → vintrepid joined | 21:02 |
| → dduncan joined | 21:03 |
| → Fullmoon joined | 21:03 |
| ← dduncan left | 21:04 |
| ← X-Blade left | 21:04 |
| ← lorandi left | 21:06 |
| → ciaran_ joined | 21:08 |
| ← vintrepid left | 21:08 |
| → X-Blade joined | 21:09 |
| ← elight left | 21:10 |
|
SRabbelier
| Pieter|Paris: ping? | 21:14 |
| blowery`afk → blowery | 21:15 |
| ← mxey left | 21:17 |
| ← ciaran left | 21:17 |
| ← jamie_alm left | 21:19 |
| ← earcar left | 21:21 |
| → markkalderon joined | 21:21 |
| ← priidu left | 21:22 |
|
lea_w
| how come i have unpacked objects left in my object store after git repack and git gc? | 21:23 |
| → CodeOfficer joined | 21:24 |
| → zawir joined | 21:24 |
|
Mikachu
| unreachable objects younger than 2 weeks? | 21:24 |
| → elight joined | 21: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 them | 21:25 |
|
drizzd
| not being packed is the definition of loose | 21: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 directly | 21:26 |
| → kallepersson joined | 21:26 |
| ← grahal left | 21: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 you | 21:27 |
|
kallepersson
| -a for auto? | 21:28 |
|
Mikachu
| or git commit $file | 21:28 |
|
pygi
| unless it's a new file, then you have to do "git add file" | 21:28 |
| → evanlight joined | 21:28 |
|
kallepersson
| I see | 21:28 |
|
| makes sense | 21:28 |
|
pygi
| kallepersson, no, for "add" :P | 21: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
| yes | 21:28 |
|
Mikachu
| yes | 21:28 |
|
kallepersson
| but I'd need to add them manually to be able to use git diff --cached | 21:29 |
|
pygi
| Mikachu, yes, it's "all" :) | 21:29 |
|
| sorry :p | 21:29 |
|
Mikachu
| kallepersson: obviously | 21:29 |
|
kallepersson
| then it diffs my changes to the upstream version. | 21:29 |
|
| so obviously | 21: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 file | 21:30 |
|
| ah, yeah. | 21:30 |
|
drizzd
| or git diff HEAD | 21:30 |
|
| kallepersson tries with -a | 21:30 |
| ← jamessharp1 left | 21:30 |
|
kallepersson
| commit, that is | 21:30 |
| ← deavid left | 21: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
| ah | 21:32 |
|
| how would i tell it? | 21:32 |
|
drizzd
| git add or git rm --cached | 21:32 |
| Arc_ → Arc | 21:33 |
|
kallepersson
| okay | 21:33 |
|
drizzd
| but I never actually use that unless I accidentally delete a tracked file using just rm instead of git-rm | 21:33 |
|
kallepersson
| good, just wanted to know | 21:34 |
|
| obviously you'd use git-rm | 21:34 |
|
| very nice that git-rm is a command | 21:34 |
|
| instead of git rm | 21:34 |
|
drizzd
| hmm? git-rm and git rm is the same | 21:34 |
|
kallepersson
| so you'd go like git-r[TAB]. faster to use | 21: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 hyphens | 21:35 |
|
| it's in contrib/ if you compiled git from source. | 21:35 |
|
gitsky
| kallepersson: don't get used to that | 21:36 |
|
| kallepersson: the dash-form is going away with new git release | 21:37 |
| → entie joined | 21: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 136 | 21:37 |
|
| git is really awesome when you get used to it! | 21:38 |
|
pygi
| 132 | 21:38 |
|
| :p | 21:38 |
|
kallepersson
| heh, oops. | 21:38 |
|
drizzd
| 148 | 21:38 |
|
| drizzd wins | 21:38 |
|
kallepersson
| hah, watching the Linus Git video. he doesn't do backups :) | 21:38 |
|
pygi
| drizzd, patience :p | 21:39 |
|
kallepersson
| hm, I did git rm foo.txt and then git diff --cache | 21:40 |
|
| nothing. | 21:40 |
| → eikonos joined | 21:40 |
|
kallepersson
| git commit did catch it though | 21: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/csdf | 21:42 |
|
| deleted file mode 100644 | 21:42 |
|
| index e69de29..0000000 | 21:42 |
|
Gitbot
| [git e69de29]: http://tinyurl.com/5lvq4r [blob] | 21:42 |
|
kallepersson
| didn't. | 21:43 |
|
jast
| gotta love Gitbot | 21:43 |
|
kallepersson
| created file, committed file. rm'd file, ran git diff --cache ... without d. | 21:43 |
| ← bongiojp left | 21:43 |
|
drizzd
| git diff --cache | 21:43 |
|
| error: invalid option: --cache | 21:43 |
| ← elight left | 21:44 |
| evanlight → elight | 21:44 |
|
gitsky
| kallepersson: I think that comes from experience | 21: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 changes | 21: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 bisectable | 21:45 |
|
jast
| if in doubt, err in favour of more commits | 21:45 |
|
gitsky
| kallepersson: but I'd say committing more often than optimal is better than committing less | 21:45 |
|
kallepersson
| hm, for instance | 21: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 left | 21:48 |
|
jast
| sounds reasonable | 21:48 |
|
| though you could argue for combining in a single commit a new feature, related tests and documentation | 21:49 |
|
kallepersson
| makes sense | 21: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 nice | 21:50 |
|
Mikachu
| it's easier to combine small commits into a big one than the opposite | 21:51 |
|
kallepersson
| I'm probably going to do mostly web stuff though | 21:51 |
|
gitsky
| lea_w: (and I'm not saying I'd do Git::Command today or tomorrow ;) | 21:51 |
| ← LiamH left | 21:51 |
| ← SRabbelier left | 21:52 |
| ← jerbear left | 21:53 |
|
lea_w
| gitsky: i'm not planning to add anything like Git::Command atm | 21:53 |
|
| gitsky: yes, the next series will have the gitweb changes split | 21:53 |
|
| gitsky: you have a lot of names btw ;-) | 21:53 |
| → seed joined | 21:54 |
| → SRabbelier joined | 21:54 |
| ← Eludias left | 21: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 gitk | 21:57 |
| ← Fullmoon left | 21:57 |
| → tiglionabbit_ joined | 21: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 though | 22:00 |
|
lea_w
| ok... *nods* | 22:00 |
| ← Yuuhi left | 22:00 |
|
lea_w
| oh, hm, didn't know git gui did that. thanks! | 22:00 |
| ← juanjoc left | 22:01 |
| → Fullmoon joined | 22:01 |
| → juanjoc joined | 22:02 |
| ← krh left | 22:02 |
| ← kumbayo left | 22:03 |
| ← juanjoc left | 22:03 |
| ← sgrimm left | 22:03 |
| ← emachado left | 22:05 |
| blowery → blowery`afk | 22:08 |
| blowery`afk → blowery | 22:10 |
| cbreak|afk → cbreak | 22:10 |
| ← krawek left | 22:10 |
| ← paulttt left | 22:10 |
| ← FunkeeMonk left | 22:12 |
| ← paltman left | 22:13 |
| ← _graham_ left | 22:15 |
| → evan joined | 22:16 |
|
evan
| how does git detect that a blob is binary? | 22:16 |
| ← robinr left | 22:19 |
|
lea_w
| evan: where does it detect that? | 22:20 |
|
| blobs are normally opaque, well, blobs of data | 22:21 |
|
evan
| well, "git format-patch" detects it to know whether to generate a binary patch or not | 22: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 |
|
| ok | 22:21 |
|
| i'll look in xdiff | 22: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 chars | 22:22 |
|
| dunno what that's used for either though | 22:22 |
|
evan
| hm | 22:22 |
|
| well, thanks | 22: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 source | 22:24 |
| → BigCanOfTuna_ joined | 22:25 |
| ← dramsay left | 22:25 |
|
jengelh
| I trust myself, always :p | 22:25 |
|
telmich
| that's more than I do :-) | 22:27 |
|
jast
| xdiff is probably the right place to look | 22: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 left | 22:29 |
| → johnw- joined | 22:30 |
|
MarcWeber
| Does git-config support listing all keys of a section? | 22:31 |
|
Mikachu
| you can -l | grep | 22:32 |
| ← BigCanOfTuna left | 22: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 script | 22:33 |
| → CrnkyGeek joined | 22:34 |
| → BigCanOfTuna__ joined | 22:36 |
| BigCanOfTuna__ → BigCanOfTuna | 22:36 |
| ← vbabiy left | 22:37 |
|
Weasel[DK]
| What is the correct way to edit the .git/description file ? | 22:37 |
| ← aroben_ left | 22: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/description | 22:39 |
|
Gitbot
| Mikachu: Unknown command or plugin 'EDITOR'. | 22:39 |
|
gitster
| sensible-editor ;-)? | 22:39 |
|
Weasel[DK]
| lol | 22:39 |
|
jast
| M-x butterfly | 22:40 |
|
Weasel[DK]
| what i mean is.. how does it get distributed... dont seem push is working here | 22:40 |
|
Mikachu
| it doesn't | 22:40 |
| blowery → blowery`afk | 22: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-stream | 22:41 |
|
Mikachu
| i only know c-x c-c | 22:42 |
|
Weasel[DK]
| when you clone then | 22:42 |
| ← BigCanOfTuna_ left | 22:45 |
|
Weasel[DK]
| i just tried it out... the changes .git/description are not distributed when clone'ing. | 22:46 |
| ← SRabbelier left | 22:47 |
| → nud joined | 22:48 |
| → SRabbelier joined | 22:48 |
|
uau
| Weasel[DK]: it's only for local use | 22:48 |
| → ereslibre_laptop joined | 22:49 |
|
ereslibre_laptop
| hi there | 22:49 |
|
Weasel[DK]
| uau, so i see... a bit strange i think | 22: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 remote | 22:49 |
|
johnw-
| even if you delete it, its commits will not be deleted | 22:50 |
|
| it's just the name you're getting rid of | 22:50 |
|
ereslibre_laptop
| I know, but the history will identify that the branch happened ? | 22:50 |
|
Mikachu
| yes | 22:50 |
|
ereslibre_laptop
| the merge, sorry | 22:50 |
|
johnw-
| absolutely | 22:50 |
|
ereslibre_laptop
| great. thanks | 22:50 |
|
Mikachu
| the history doesn't care about branches really | 22:50 |
|
ereslibre_laptop
| I see | 22:50 |
|
Mikachu
| ie, about branch refs | 22:50 |
|
johnw-
| if you want to view the merged commits, you can use for example git log HEAD^2 | 22:51 |
|
Mikachu
| the actual commits have info about the history | 22:51 |
| → amigrave joined | 22:51 |
|
johnw-
| while git log HEAD will just show the merge commit itself, not the commits that made it up | 22:51 |
| ← johnjosephbachir left | 22:51 |
| → mib_a7mj00 joined | 22:51 |
|
Mikachu
| johnw-: hm? pretty sure it will follow both legs | 22: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 foo | 22:52 |
|
johnw-
| i thought its output was linear, I could be wrong | 22:52 |
|
ereslibre_laptop
| (-d will delete foo after merging) | 22:52 |
|
Mikachu
| johnw-: git log --graph | 22: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 left | 22:55 |
|
johnw-
| that just means you don't have uncommited changes | 22: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 changse | 22:55 |
|
uau
| -n 1 means to show one commit only | 22:55 |
|
Mikachu
| -1 also works | 22:55 |
|
johnw-
| yes, I misspoke | 22:56 |
|
Mikachu
| maybe git show $(git rev-list -1 file) file | 22:56 |
|
johnw-
| why not just git show HEAD^ -- file? | 22:56 |
|
| hmm git diff HEAD^ -- file works here, but show doesn't | 22:56 |
|
Mikachu
| the changes might be in HEAD~50 | 22:57 |
|
johnw-
| ah | 22:57 |
| → jackdempsey joined | 22:57 |
|
Mikachu
| johnw-: git show HEAD -- file | 22:57 |
|
johnw-
| i'm just off my game today! | 22:57 |
| ← Mishakun left | 22: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 file | 23:01 |
|
Mikachu
| amigrave: read what i wrote | 23:01 |
|
| or for that matter, what uau wrote | 23:01 |
| → \ask_ joined | 23:02 |
|
amigrave
| Mikachu: ah yes ! sorry ! my fault | 23:03 |
| ← SRabbelier left | 23:03 |
| → EiNZTEiN_ joined | 23:04 |
| ← EiNZTEiN left | 23:04 |
| ← \ask_ left | 23:05 |
|
MarcWeber
| I've written my first git script.. Maybe its useful for you as well? | 23:05 |
| → \ask_ joined | 23:05 |
|
MarcWeber
| You can describe test merges and redo the merge using git-test-merge name.. | 23:05 |
|
| http://rafb.net/p/OiWgEU19.html | 23:05 |
|
ereslibre_laptop
| hmm, i am getting this error when trying to push | 23: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 left | 23:07 |
| ← heycarsten left | 23:07 |
|
MarcWeber
| You can either push -f (override the target. this could loose commits) or fetch that branch and rebase your changes | 23: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 again | 23:09 |
|
uau
| are you sure nobody else pushed commits in the meantime? | 23:09 |
|
MarcWeber
| ereslibre_laptop Create a new branch based on your master | 23:09 |
|
| git-branch new master | 23: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 message | 23:10 |
|
MarcWeber
| After having done this you can use gitk --all to watch where both branches (new and master) diverged | 23:11 |
|
uau
| non-fast forward means that the remote state is not in the history of the commit you're trying to push | 23:11 |
| ← brosner left | 23: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 well | 23:12 |
|
| gitk is based on tcl/tk | 23:12 |
|
ereslibre_laptop
| yep | 23: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 - new | 23:13 |
|
ereslibre_laptop
| MarcWeber: after creating the new branch and pulling, I see the old one again | 23:14 |
| ← d0k left | 23:14 |
|
MarcWeber
| ereslibre_laptop The old one you've pushed the first time? | 23:14 |
|
ereslibre_laptop
| yep | 23:14 |
|
| now i think I can just merge newmaster with master | 23:15 |
|
| and I am done ? | 23:15 |
|
MarcWeber
| If this is what you want /need then yes | 23:15 |
|
| Is qgit more powerful than gitk ? | 23:16 |
|
ereslibre_laptop
| hvent used gitk | 23: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 too | 23: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 joined | 23:18 |
| ← jackdempsey left | 23: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.png | 23:19 |
|
| MarcWeber: basically what I want is master and gitorious/master to be at the same commit level | 23:19 |
| ← EmilMedve left | 23: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 histories | 23:20 |
|
MarcWeber
| If they were they would be on one line | 23:20 |
| → Ademan joined | 23: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
| nope | 23:21 |
|
MarcWeber
| Scroll down and see where the history differs | 23:21 |
|
Eridius|work
| then where did the "Merge branch 'smooth'" commit come from? | 23:21 |
|
ereslibre_laptop
| only on the commit you see there | 23: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. dunno | 23:22 |
|
| black line have some commits | 23:23 |
|
| red one, only the "merge branch smooth" | 23:23 |
| ← Weasel[DK] left | 23:23 |
|
ereslibre_laptop
| is the only commit that black hasn't. and is the only commit on that branch actually | 23: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' there | 23:24 |
|
ereslibre_laptop
| MarcWeber: that's a pretty good question. I just did the merge, and later did a git push gitorious master | 23: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 well | 23:26 |
|
| same patch on both lines | 23:26 |
| → jengelh joined | 23:26 |
|
ereslibre_laptop
| MarcWeber: no, that ine is in 'smooth' and is fine there ;) | 23:26 |
|
| ok, so now it seems it is working | 23:27 |
|
| what i did is | 23:27 |
|
| what you suggested ebfore | 23:27 |
|
| create a branch | 23:27 |
|
| newmaster | 23:27 |
|
| merge newmaster on master | 23:27 |
|
| git push gitorious master | 23:27 |
|
| that id it | 23: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 branch | 23:29 |
|
| it just makes it | 23: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 joined | 23:29 |
|
MarcWeber
| ereslibre_laptop This doesn't make sense. The only commit on the red line is the merge? | 23:30 |
|
ereslibre_laptop
| yes | 23:30 |
|
| ¬¬ | 23:30 |
|
| that is what confuses me | 23:30 |
|
| MarcWeber: maybe a qgit fault ? | 23:30 |
| → dramsay joined | 23:30 |
| → clsdaniel joined | 23:31 |
| ← p4tux left | 23: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 do | 23:31 |
|
| maybe when pushing it i did something wrong ? | 23:32 |
|
| dunno | 23:32 |
|
| ¬¬ | 23:32 |
|
MarcWeber
| ereslibre_laptop: Well.. That's the cause then.. | 23:32 |
|
Eridius|work
| a push cannot create a merge | 23:32 |
|
| but whatever happened, we're not going to be able to figure it out | 23:32 |
|
| as long as you got your history in a good state now, that's all that matters | 23:32 |
|
ereslibre_laptop
| it is very probably that i pushed when being on a different branch or something ? :/ | 23:32 |
| ← _zack left | 23: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 anything | 23:33 |
|
Eridius|work
| MarcWeber: ahh, good thinking | 23:33 |
|
ereslibre_laptop
| MarcWeber: yes, that is what i have | 23:33 |
|
| MarcWeber: master in there, and master in here | 23:33 |
|
| i work here, commit | 23: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 much | 23:34 |
|
ereslibre_laptop
| xD | 23:34 |
|
MarcWeber
| ereslibre_laptop: No I'm talking rubbsih.. just tell qgit to use the correct branch when merging.. :) | 23:34 |
|
| ereslibre_laptop installs gitk | 23:35 |
|
MarcWeber
| ereslibre_laptop gitk can't do merges | 23:35 |
|
ereslibre_laptop
| qgit can't either. qgit only reads ur repository | 23:35 |
| → GeckoPie_ joined | 23: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 scalextric | 23:36 |
| ← GeckoPie left | 23:36 |
| → Fullmoon_ joined | 23:37 |
|
ereslibre_laptop
| hehe cool | 23:38 |
|
| http://media.ereslibre.es/2008/07/gitk.png < MarcWeber ;) | 23:38 |
| → jamie_alm joined | 23:38 |
|
| ereslibre_laptop wonders wth did he did ;) | 23:39 |
| ← jamie_alm left | 23:39 |
| → amystrat joined | 23:40 |
| ← cilly left | 23:40 |
| → jackdempsey joined | 23:41 |
| ← ciaran_ left | 23:41 |
|
amystrat
| Having trouble with gitosis install | 23:42 |
|
MarcWeber
| What is gitosis? | 23:42 |
|
amystrat
| http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way | 23:42 |
|
Eridius|work
| ereslibre_laptop: you merged gitorious/master | 23:42 |
|
| so it looks a bit odd | 23:42 |
|
| cebewee has problems writing a test for the suite without stupid bugs =) | 23:43 |
| ← GeckoPie_ left | 23:43 |
| ← elight left | 23:44 |
| ← koke left | 23:45 |
|
ereslibre_laptop
| nah the problem seems to be git-svn | 23:46 |
|
| git svn rebase ; git push gitorious master doesnt like it | 23:46 |
|
Eridius|work
| well no, you've just rebased. if you rebase a branch you've published, you're going to have issues | 23:47 |
|
ereslibre_laptop
| Eridius|work: so the problem is "git-svn rebase" ? | 23:48 |
| ← nud left | 23:48 |
|
MarcWeber
| ereslibre_laptop: Yes. | 23:48 |
|
ereslibre_laptop
| great, finally found | 23: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 --help | 23:49 |
| → SRabbelier joined | 23:49 |
|
ereslibre_laptop
| ok, thanks | 23: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 kde | 23:51 |
|
| what i need is the svn up that isn't git-svn rebase | 23:51 |
|
| git svn fetch is probably the only thing i need | 23:52 |
| → davidfetter joined | 23:54 |
| ← Fullmoon left | 23:55 |
| tommorris_ → tommorris | 23:57 |
| ← bronson left | 23:59 |