| 2007-09-05 |
|
jlh
| yes, that's what I'm wondering about. first I though it only sorts for size, so that similar objects are close together. | 00:00 |
|
gitster
| We sort by type (commits first, I think, but it does not really matter, as we never deltify across object types --- meaning a tree object is _never_ represented as a delta against a blob object). | 00:00 |
|
| Now, then within the same type, we order by "name" but actually we do not use the full string. | 00:00 |
|
| We give each name condensed "key" so that Makefile, sub1/Makefile, sub/dir/Makefile are sorted close to each other. | 00:01 |
|
| which means we will sort so that contents that are expected to be similar to each other are grouped together, using the filename as hint. | 00:02 |
|
| Essentially, that condensing "key" is a weighted sum of characters in the filename, and later part has more weight (so *.c files sort together and *.h files sort together). | 00:02 |
|
| Also we sort by size, larger to smaller. | 00:03 |
|
| So what typically happens is: | 00:03 |
|
| (1) largest one is stored, as just gzip compressed. | 00:03 |
|
| (2) other similar ones close by (defined by the above sort order) are compared with what we have already looked at, and we find the delta that is smallest to represent it. | 00:04 |
|
| Now, our delta algorithm can express two operations: | 00:04 |
|
| a. put byte range from here to there taken from the preimage (delta base) to this offset in the post image; | 00:05 |
|
| b. put this literal byte sequence N-bytes long in the postimage at this offset. | 00:05 |
|
jlh
| ah yes, I think it uses xdelta for that, right? | 00:05 |
|
gitster
| Because we try to look at larger ones first, this tends to allow us expressing changes as removals --- which means we do not have to encode anything at all. | 00:05 |
|
| Obviously we can not afford to look at _all_ objects we have looked at so far as candidates of delta base when we try to compute delta for a new object. | 00:06 |
|
| So we have a sliding window of size N (that is what --window= parameter specifies), and check that many past objects. | 00:07 |
|
jlh
| I see. That phrase in the man page made me think it sorts only by type and then size, which I believe wouldn't scale well with lots of objects. | 00:07 |
|
gitster
| Another thing we do is even if an object _can_ be represented as a very small delta against something else, | 00:07 |
|
jlh
| and 'name' wasn't clear to me what it means, because blobs don't have names by themselves | 00:07 |
|
gitster
| we avoid making a delta against something that itself is a delta which in turn is a delta of something else --- and the chain to reach the final object is too long. That is controlled by --depth= parameter. | 00:08 |
| ← ferdy left | 00:08 |
|
gitster
| Now, after we know how each of the objects will be represented in the resulting pack (either "just compressed", or "expressed as a delta against something else"), we write things out, largely in the same order as rev-list gave us. | 00:09 |
|
jlh
| Is there a way to dump the content of a pack to see how it expresses objects? | 00:10 |
|
gitster
| with one twist: when it is turn to write out an object that is represented as a delta against something else, that something else must have been written out already. This rule hoists the base object in the order of final object stream. | 00:10 |
|
| See documentation/technical/pack-format and then "verify-pack -v". There is a script to condense its output in contrib/stats/. | 00:10 |
|
jlh
| ok will do. thanks a lot for that explanation :) much clearer to me now | 00:11 |
| → mayz joined | 00:13 |
| ← mayz left | 00:13 |
| ← FunkeeMonk left | 00:17 |
| → jcollie joined | 00:23 |
| ← sinequanon left | 00:27 |
| ← kanru left | 00:28 |
|
| gitte says good night. | 00:29 |
| ← gitte left | 00:30 |
| ← agoode left | 00:30 |
| ← devogon left | 00:44 |
| → flo joined | 01:07 |
| ← yorgen1512 left | 01:11 |
| ← rodserling__ left | 01:17 |
| → BadQuanta joined | 01:21 |
| ← rlb3 left | 01:21 |
| ← puzzles left | 01:25 |
| → puzzels joined | 01:25 |
| → DrNick joined | 01:26 |
| ← KirinDave left | 01:27 |
| puzzels → puzzles | 01:27 |
| → rlb3 joined | 01:30 |
|
flo
| Hi ! I'm using git with a shared repo on a server (mainly for keeping my different machines in sync). Anyway i noticed that if i create a new branch on one machine, commit it, push it to the server then the new branch will now show up on a second machine that pulled from the server later | 01:39 |
|
| is there a way to always push/pull all local branches ? (or is there something like a global branch ?) | 01:39 |
|
jasam
| flo, branches different from master are pulled as remote branches, you can see them with git branch -r | 01:43 |
| ← sgrimm left | 01:45 |
|
jasam
| gitster, I sent another try with a function for updating refs, generalizing the others | 01:46 |
|
flo
| jasam: great, thanks! | 01:47 |
|
jasam
| flo, :-) they also will remain unchanged, to have always a copy of the original pulled branch | 01:48 |
| ← QuercusMax left | 01:50 |
| → theCarpenter joined | 01:57 |
| theCarpenter → Dragon45 | 01:57 |
| ← lizac left | 01:58 |
| ← Yuvi left | 02:08 |
|
Dragon45
| what's the upper limit on the size of non-text files that git can handle? | 02:11 |
|
| images, .exes, etc... | 02:11 |
|
context
| im guessing whatever your fs can handle | 02:14 |
|
flo
| My gitweb installation always says : "403 Forbidden - No project found." also i did chmod -R 777 on my repodir... | 02:16 |
|
context
| are you sure you gave it the right path to your project[s] | 02:21 |
| ← myrizio_ left | 02:24 |
| → dduncan joined | 02:26 |
| ← tongueroo left | 02:27 |
| → raeLLL joined | 02:29 |
| → QuercusMax joined | 02:31 |
| ← QuercusMax left | 02:34 |
| ← whee left | 02:41 |
|
Dragon45
| is git-daemon a requisite for git-web? | 02:43 |
|
tcoppi
| no | 02:44 |
|
BadQuanta
| Ok. I'm testing moving my project to git.. wish me luck. | 02:55 |
| ← HackyKid left | 02:55 |
|
BadQuanta
| Quick Question: I've got all my projects stored in one SVN repo.. I think I've read thats not the way you want to run GIT.. is that correct. | 02:55 |
| ← flo left | 02:59 |
| → flo joined | 03:01 |
| ← jasam left | 03:02 |
|
Tv
| BadQuanta: yes | 03:02 |
|
BadQuanta
| Ok. just checking. | 03:03 |
| ← aroben left | 03:09 |
| ← madewokherd left | 03:17 |
| → tongueroo joined | 03:18 |
| → KirinDave joined | 03:18 |
|
fidodido
| hey guys | 03:21 |
|
| git rocks | 03:21 |
|
| like amazing | 03:21 |
|
| really imrpoved the way i work | 03:21 |
|
| and can feel it | 03:21 |
| ← rlb3 left | 03:21 |
|
fidodido
| how do i ignore some files during a git merge | 03:21 |
|
| is there like a .gitmergefile | 03:21 |
| → rlb3 joined | 03:22 |
|
fidodido
| or how to ignore binary files during a merge | 03:22 |
| → DrNick2 joined | 03:23 |
| ← flo left | 03:23 |
|
fidodido
| how do we ignore files from git merge | 03:23 |
| ← DrNick left | 03:25 |
| DrNick2 → DrNick | 03:25 |
| → FauxFaux joined | 03:26 |
| → aroben joined | 03:28 |
|
| Randal tries to figure out what "ignore files during a merge" might mean | 03:28 |
|
Randal
| you have C that's the result of A + B. And if parts of A and B conflict, *you* have to tell it which. | 03:29 |
|
| that's the only reason you'd get involved. | 03:29 |
|
context
| randal: maybe re-read the whole paragraph over again | 03:30 |
|
Randal
| I did, three times. | 03:30 |
|
| I still don't get it. | 03:30 |
|
context
| often times things dont sound correct out of context.. much like you just pasted to us | 03:30 |
|
Randal
| it's gonna require some context or motivation. | 03:30 |
|
context
| wheredoes it say tht | 03:30 |
|
Randal
| if you have a commit A and another commit B, you have to resolve every single file in both | 03:31 |
|
| it doesn't make sense any other way. | 03:31 |
|
context
| wow, forget i even asked a question | 03:31 |
|
Randal
| I'm talking to fidodido | 03:31 |
|
| not you | 03:31 |
| → fhobia joined | 03:31 |
|
Randal
| ... <fidodido> how do i ignore some files during a git merge | 03:32 |
|
context
| oh ok. now i see | 03:32 |
|
Randal
| answering that | 03:32 |
|
| trying to anyway | 03:32 |
|
| but he's now apparently gone | 03:32 |
|
| so I'm just wasting my breath. :) | 03:32 |
|
context
| randal: srry. ;) | 03:32 |
|
Randal
| heh no prob | 03:32 |
|
| I do that sometimes too | 03:32 |
|
| hard to tell which way you're facing in virtual space. | 03:33 |
|
| FauxFaux peers at git-svnmirror. | 03:33 |
| ← cmarcelo left | 03:33 |
|
gitster
| often people mean "keep other person's version because what I produce is crap". | 03:33 |
|
fidodido
| randall | 03:33 |
|
| Randal: i ve a few branches | 03:33 |
|
| master | 03:33 |
|
| slave | 03:33 |
|
| and one more | 03:34 |
|
| i want to pull some changes from master to slave | 03:34 |
|
| but i dont want to pull all the changes | 03:34 |
|
| i want to ignore some files | 03:34 |
|
| so i jus want some code from the master | 03:34 |
|
gitster
| Sorry, you are not thinking git yet. | 03:34 |
|
Randal
| yeah - not thinking git | 03:34 |
|
fidodido
| but i want to ignore binary | 03:34 |
|
Randal
| that's why I was confused too | 03:34 |
|
fidodido
| and some other files | 03:34 |
|
gitster
| That's _not_ a merge. | 03:34 |
|
fidodido
| i do | 03:34 |
|
| i do git checkout slave | 03:34 |
|
| git merge master | 03:34 |
|
| and i want to ignore certain .html files | 03:35 |
|
Randal
| do you understand what a "merge" is for, fidodido? | 03:35 |
|
fidodido
| during merge | 03:35 |
|
gitster
| with that command, you are telling git that you want whole tree merge. | 03:35 |
|
Randal
| I don't think you do. | 03:35 |
|
fidodido
| ok | 03:35 |
|
Randal
| at least not the git meaning of merge | 03:35 |
|
fidodido
| i want to merge the changes from the other branch | 03:35 |
|
chowmeined
| i dont understand.. how do i just fetch a remote branch and then use it?.. i cant find it anywhere | 03:35 |
|
fidodido
| ok | 03:35 |
|
| so how do i pull some changes from a part branch | 03:35 |
|
| master | 03:35 |
|
| to slave | 03:35 |
|
| mebe i dont need to do merge | 03:36 |
|
| is there something else | 03:36 |
|
| i can do | 03:36 |
|
chowmeined
| i fetched it with git fetch git://location/git/item.git core | 03:36 |
|
fidodido
| this is imperative | 03:36 |
|
Randal
| a merge is a third tree that results from mixing two other trees, representing a complete replacement for either of them. | 03:36 |
|
gitster
| fidodido: if you have three changes (three separate commits) on master, | 03:36 |
|
fidodido
| becuase | 03:36 |
|
Randal
| in other words, a "better" version than either of the parent versions. | 03:36 |
|
fidodido
| these are 2 projects | 03:36 |
|
gitster
| one touches file A B, another touches C (binary), and the other one touches A and D, | 03:36 |
|
fidodido
| master and slave | 03:36 |
|
| and each share code | 03:36 |
|
Randal
| you want subprojects | 03:36 |
|
fidodido
| oh ok | 03:36 |
|
Randal
| not trees. | 03:36 |
|
fidodido
| how do i do that | 03:36 |
|
gitster
| you _COULD_ say "I want to cherry-pick the first and the third one". | 03:36 |
|
Randal
| (I think) | 03:36 |
|
fidodido
| randal | 03:36 |
| → aroben_ joined | 03:36 |
|
fidodido
| i think u got it | 03:36 |
|
| bulls ey | 03:36 |
|
| e | 03:36 |
|
| :) | 03:36 |
|
| so how to do subprojects | 03:37 |
|
| in git | 03:37 |
| ← vdv left | 03:37 |
|
gitster
| Randal: I fail to see how this has anything to do with subprojects. | 03:37 |
|
chowmeined
| i fetched something.. but i cant find it anywhere | 03:38 |
|
| what do i do to just fetch a branch from a remote repo? | 03:38 |
|
aeruder
| git branch -a | 03:38 |
| → yorgen1512 joined | 03:38 |
|
aeruder
| ^^ chowmeined | 03:38 |
|
Randal
| it sounds like he has trees with independent histories | 03:39 |
|
| that's what subprojects are for | 03:39 |
|
fidodido
| Randal: the current version of master | 03:39 |
| ← Sho_ left | 03:39 |
|
fidodido
| and current version of slave | 03:39 |
|
| brance | 03:39 |
|
| are 2 projects | 03:39 |
|
| that are live | 03:39 |
|
chowmeined
| aeruder: it still only lists once branch.. but i fetched one | 03:39 |
|
fidodido
| but they share code | 03:39 |
|
| but not all the code | 03:39 |
|
| soem files are different | 03:39 |
|
| for eg | 03:39 |
|
| names of the proj | 03:39 |
|
| logs | 03:39 |
| ← yorgen1512 left | 03:39 |
|
fidodido
| they are different | 03:39 |
|
gitster
| chowmeined: you earlier said "I fetched". How? | 03:39 |
|
fidodido
| but the backend | 03:39 |
|
Randal
| anyway... I'm leaving to meet friends (yes, I still have them) :) | 03:39 |
|
aeruder
| fidodido: man, could you *please* attempt to put more than 5 words on a line, you are destroying the backlog | 03:39 |
|
fidodido
| keeps improving | 03:39 |
|
aeruder
| because it | 03:39 |
|
| gets | 03:39 |
|
fidodido
| oops | 03:39 |
|
aeruder
| so annoying :) | 03:40 |
|
chowmeined
| gitster: git fetch location:/git/test.git | 03:40 |
|
fidodido
| when i clone a repo | 03:40 |
|
chowmeined
| and also.. git fetch location:/git/test.git somebranch | 03:40 |
|
fidodido
| i do git clone /work/git/code | 03:40 |
|
| and now i go to /tmp/code | 03:40 |
|
| it only has master branch | 03:40 |
|
| hw do i get all the branches | 03:40 |
|
| and exact copy of the repo | 03:40 |
|
aeruder
| fidodido: git branch -a | 03:40 |
|
fidodido
| shud i jus copy the file in unix | 03:40 |
|
| ok | 03:40 |
|
aeruder
| they're all there | 03:40 |
|
gitster
| chowmeined: Either does not specify tracking branch (see git-fetch manual and read description of refspec). | 03:41 |
|
| So what you fetched is only found in .git/FETCH_HEAD. | 03:41 |
|
fidodido
| aeruder: git branch -a | 03:41 |
|
| commentwall | 03:41 |
|
| edviral | 03:41 |
|
| * master | 03:41 |
|
| pendingreg | 03:41 |
|
| server | 03:41 |
|
| today | 03:41 |
|
| this wat i got | 03:41 |
|
gitster
| chowmeined: Is this location:/git/test.git/ repository what you will be interacting with repeatedly, or just is this just one shot deal to fetch from it? | 03:42 |
|
chowmeined
| so how do i fetch all the stuff? | 03:42 |
|
| somebody cloned my repo.. and added some branches and stuff.. and that is their published work.. now i want to get it into my repo and merge it | 03:42 |
|
gitster
| So you heard from them that "here is _the_ branch that has updates on top of your work"? | 03:43 |
|
chowmeined
| yes.. their master branch is unchanged | 03:43 |
|
gitster
| And merging it back is one shot (although they may later come back with more updates)? | 03:43 |
|
fidodido
| aerude? | 03:43 |
|
chowmeined
| yes | 03:43 |
|
gitster
| If that is the case, you probably should have done "git pull location:/git/test.git/ that_branch_they_asked_you_to_merge" | 03:44 |
|
| That's the SOP for one-shot merge from downstream. | 03:44 |
|
chowmeined
| cant i fetch it first so i can review what they did before merging it? | 03:44 |
|
gitster
| You could, but you can do the above pull, then "git log ORIG_HEAD.." (or "git diff ORIG_HEAD..") to inspect it _after_ the merge. If you do not like the result, you can always "git reset --hard ORIG_HEAD" to get rid of it. | 03:45 |
| ← KirinDave left | 03:45 |
|
gitster
| That's also the SOP for one-shot merge from downstream. | 03:45 |
|
chowmeined
| SOP? | 03:45 |
|
gitster
| standard-operating-procedure | 03:45 |
|
chowmeined
| standard operating procedure? | 03:45 |
|
| ok | 03:45 |
|
| thats what i thought | 03:45 |
|
gitster
| Having said that. | 03:45 |
|
| You could "git fetch somewhere:somerepo.git somebranch" and then | 03:46 |
|
chowmeined
| but how would i fetch a remote branch so it becomes a branch in mine? | 03:46 |
|
gitster
| "git log ..FETCH_HEAD" | 03:46 |
|
| wait a bit, I'll answer your earlier question first. | 03:46 |
|
chowmeined
| ok | 03:46 |
|
gitster
| If you did not do "git pull" but "git fetch", then you will have what you fetched in .git/FETCH_HEAD (file) and you can refer to it as FETCH_HEAD, like the above command. "git log ..FETCH_HEAD" means "Show me what my HEAD does not but what FETCH_HEAD has". | 03:47 |
|
chowmeined
| oh.. so i could git branch test .. then git merge FETCH_HEAD? | 03:48 |
|
gitster
| I did not say "could git branch test" part; I do not think you can. | 03:48 |
|
| (continuing what I was saying) If you are satisfied with the output of "git log ..FETCH_HEAD", you should be able to say "git merge FETCH_HEAD" ("git pull" is "git fetch" + "git merge"). | 03:49 |
|
chowmeined
| it just creates a new branch.. then i merge the updates with that branch | 03:49 |
|
gitster
| "creates a new branch" from where? | 03:49 |
|
chowmeined
| it branches from my master.. then i merge their updates with this new branch.. now i have their branch as a branch | 03:50 |
|
gitster
| So that's one way. Now, if you are _not_ doing a one-shot merge from downstream, iow, if the other guy is somebody you will be merging from repeatedly in the future, it is cumbersome to always type URL and branch name. | 03:50 |
|
| It also is easier to keep track of what you fetched/merged from him last time. | 03:50 |
|
| That's where remote tracking branches come to play. | 03:50 |
|
| You can "git remote add somewhere:somerepo.git somename" once, and then | 03:51 |
|
chowmeined
| oh yea, thats what i was looking for | 03:51 |
|
gitster
| after setting that up once, you can: "git pull somename thatbranch" | 03:51 |
|
chowmeined
| excellent, thanks | 03:52 |
|
gitster
| where "somewhere:somerepo.git" is what the other side calls that repository, "somename" is just a name you privately use to refer to that (shorthand). | 03:52 |
|
chowmeined
| how would I handle something like.. they pulled from my repo, then i made some branches and added stuff.. and they made some branches and added stuff... do they just pull again? last time we tried that a bunch of errors came up | 03:53 |
| ← aroben left | 03:53 |
|
gitster
| If you are acting as the upstream to them, after you merge, I'd have them fetch from you and rebase what they did on top of your latest if I were you. | 03:54 |
|
chowmeined
| "fatal: needed a single revision".. and "The branch 'origin' is not a strict subset of your current HEAD" | 03:55 |
| ← federico1 left | 03:55 |
|
gitster
| what version of git are you using? | 03:55 |
|
chowmeined
| im using: git version 1.5.2.1 | 03:55 |
|
| they are using whatever comes with slackware.. i dont know... | 03:55 |
|
gitster
| was the repository cloned with ancient version of git (pre 1.5.0)? | 03:56 |
|
chowmeined
| possibly | 03:56 |
|
gitster
| Actually I know it is. | 03:56 |
|
chowmeined
| is that going to be an issue? | 03:56 |
|
gitster
| Let's fix it for you. | 03:56 |
|
| "The branch 'origin' is not a strict subset". Who gets that message? | 03:56 |
|
| You, or the other party? | 03:57 |
| ← raeLLL left | 03:57 |
|
chowmeined
| they do.. when they try to git pull to get updates | 03:57 |
|
gitster
| Two possibilities. (1) you rebased your 'master' after they fetched; (2) they committed on 'origin' after they fetched. | 03:58 |
|
| Either is a grave mistake. | 03:58 |
|
| Pre 1.5.0 git used 'origin' branch (local branch namespace, i.e. .git/refs/heads/origin) to keep track of 'master' obtained the other end. | 03:59 |
|
| If (now I am talking about the latter possibility) they clone from you, your 'master' will be copied to their 'origin' in that layout. | 03:59 |
|
chowmeined
| i keep my public and development repo separate | 04:00 |
|
gitster
| If they make commit on top of 'origin' (I am not talking about making a different branch from 'origin' and start working on that different branch --- I am talking about committing while 'origin' branch is checked out), then | 04:00 |
|
| next time when they try to fetch from you, you have something on top of your previous 'master', and fetch will try to use it to overwrite their 'origin', but it is not their origin's descendant anymore, iow, fetch will _lose_ their changes. | 04:01 |
|
| That's what the error is about. | 04:01 |
| ← aroben_ left | 04:01 |
|
chowmeined
| they get that error when they try to merge origin into master | 04:02 |
|
gitster
| Modern git avoids this mistake by using separate namespace to keep track of remote branches' progress. | 04:02 |
|
| "they try to merge origin into master" by doing what? | 04:02 |
|
| "git checkout master && git merge origin" ? | 04:03 |
|
chowmeined
| yes | 04:03 |
|
gitster
| I do not think you can get "The branch 'origin' is not a strict subset" message from anywhere in that command sequence. The only place I know is possible is during "git fetch". | 04:04 |
| ← sbohrer left | 04:04 |
|
chowmeined
| hmm, well i wasnt there when they were doing all this.. so they might have been running other commands | 04:04 |
|
gitster
| "fatal: needed a single revision" is possible if they do not _have_ origin. Can they say "git show origin" and see a commit like you see when you type "git show master"? | 04:04 |
|
chowmeined
| i dont know what happened.. what we ended up doing was moving their files out.. and then just deleting it and cloning again.. then re-adding and committing their changes | 04:06 |
|
Dragon45
| is anyone logging these IRC chats and posting them somewhere online | 04:06 |
|
| there's some useful info here :X | 04:06 |
|
gitster
| see /topic | 04:06 |
| → orospakr joined | 04:06 |
|
Dragon45
| :P | 04:07 |
|
| ty | 04:07 |
|
chowmeined
| yea.. gitster is like a fountain of knowledge | 04:07 |
|
Dragon45
| i must wire this channel into my veins | 04:07 |
|
| btw i started using git today to manage my class notes | 04:08 |
|
| since classes started today :X | 04:08 |
|
chowmeined
| ive been using git for managing source code.. but i also want to use it to manage config files under /etc on servers | 04:09 |
|
Dragon45
| is there a way to get git to "parse" open office files properly like it does with regular text files? | 04:10 |
|
gitster
| managing /etc/ is a FAQ topic. I think they have an entry in git FAQ (I am not involved in maintaining it). | 04:10 |
|
Dragon45
| i saw something about an open office driver for it.. | 04:10 |
|
| for gitk anyway | 04:10 |
|
gitster
| What do you want to see happen with OOo files? What do you want out of git "parsing" OOo files? | 04:10 |
|
Dragon45
| line tracking across files | 04:11 |
|
| git sees .odt as binary blobs right now | 04:11 |
|
gitster
| "git diff HEAD^ -- that.odp"? | 04:11 |
|
Dragon45
| but there's relevant textual information in them | 04:11 |
|
| .odt is the suffix for the open office file format | 04:11 |
|
gitster
| Is something like the above command line what you want? | 04:12 |
|
Dragon45
| (at least the word processor, i havent used the others yet) | 04:12 |
|
| oh | 04:12 |
|
danieldg
| iirc .odt is technically a .zip file with openoffice XML inside it | 04:12 |
|
Dragon45
| really? | 04:12 |
|
| hm :X | 04:12 |
|
gitster
| There was a proof of concept patch posted on the mailing list recently. | 04:12 |
|
danieldg
| rename .odt to .zip and open it up, kinda interesting | 04:12 |
|
gitster
| Well, I should not say a "patch". You can do it without patching git at all. | 04:12 |
| → yorgen1512 joined | 04:13 |
|
danieldg
| so you'd have to get something that unzips and does diffs on the unzipped text | 04:13 |
|
gitster
| Yes, write a bit of script and point GIT_EXTERNAL_DIFF at it, and you are done. | 04:13 |
| → Insount joined | 04:13 |
|
gitster
| Search the list archive for articles during the past three weeks or so for the above environment variable. | 04:13 |
|
Dragon45
| cool - is this functionality going to be integrated into the main git branch? | 04:15 |
|
gitster
| Didn't I say you donot have to patch git at all? | 04:15 |
|
| Even git v1.0 should be able to handle it. | 04:15 |
|
Dragon45
| k | 04:15 |
|
chowmeined
| hmm | 04:15 |
|
Dragon45
| still seems like it could be included by default though | 04:16 |
|
chowmeined
| well you could write your notes in text files | 04:16 |
|
| and do like docbook or latex for papers | 04:16 |
|
Dragon45
| or maybe as part of a "useful git scripts" package or something *ponders* | 04:16 |
|
| well, the thing is | 04:16 |
|
Randal
| odt files are essentially binaries | 04:16 |
|
| do you want to do image-diff too? | 04:16 |
|
Dragon45
| there's always the risk of random diagrams that are important | 04:16 |
|
gitster
| There is an OOo to text filter, and GIT_EXTERNAL_DIFF will get two OOo files in temporary files; you run the OOo-to-text filter on both and run "diff -u" yourself. | 04:17 |
|
| Randal rolls eyes at what people expect a *source* manager to do | 04:17 |
|
Dragon45
| how's this for a monkey wrench, randall | 04:17 |
|
| source of what? | 04:17 |
|
| im involved tangentially with an open source game engine project | 04:17 |
|
gitster
| source of confusion, apparently ;-). | 04:17 |
|
danieldg
| well, you could convince people to move to TeX, those files are nicely managable by SCMs :D | 04:17 |
|
Dragon45
| they're looking (still) for a robust repo system capable of dealing with the "source" of very large files | 04:17 |
|
Randal
| or POD :) | 04:17 |
|
Dragon45
| images, maps, etc | 04:17 |
|
Randal
| well - there won't be sensible "merges" of those... just allocating which version belongs in the final when there's a conflict | 04:18 |
|
Dragon45
| mhm | 04:18 |
|
eMBee
| good afternoon | 04:19 |
|
Randal
| for some meaning of afternoon. :) | 04:19 |
|
Dragon45
| midnight here ;) | 04:20 |
|
eMBee
| 4pm here | 04:20 |
|
| eMBee imported his companies svn repository into git last night | 04:20 |
|
chowmeined
| it doesnt have to be just source | 04:20 |
|
gitster
| http://marc.info/?l=git&m=118820836315602&w=2 | 04:21 |
|
chowmeined
| id hope that it could handle pretty much any text files | 04:21 |
|
eMBee
| there is a gazillion of revisions, but just a few branches. | 04:21 |
|
chowmeined
| so isnt it the right thing to do is make lots of branches in git? | 04:22 |
|
| like if i want to work on a new component.. make a branch for it until it can be merged and the result can be compiled | 04:22 |
|
| eMBee is trying to tell gitk to reduce the revisions it shows to something managable | 04:22 |
|
gitster
| chowmeined: yes and no. | 04:23 |
|
chowmeined
| oh ok.. thanks | 04:24 |
|
Dragon45
| i was wondering who this enigmatic and knowledgable "gitser" fellow is - and then a simple /whois tells me all i need to know X-D | 04:24 |
| ← jcollie left | 04:25 |
|
gitster
| git may be able to handle many branches, but humans will have hard time keeping track of which branch is still relevant. So (1) make liberal use of topic branches (encouraged), (2) once your topic is in reasonable enough shape, merge it to your integration branch (or rebase onto the integration branch and then merge it into integration branch -- which will result in a fast-forward), | 04:25 |
|
| and then (3) get rid of that topic once you merged it in the integration branch, unless there is a compelling reason to keep it around. (What I often do is "git branch -m a_topic done/a_topic" and forget about it) | 04:26 |
| ← rtmfd_icbm left | 04:26 |
| ← rkaway left | 04:26 |
|
chowmeined
| oh ok | 04:26 |
| ← jackbravo left | 04:27 |
| → rkaway joined | 04:28 |
|
eMBee
| how i can i select revisions only by date, no matter which branch they are in? | 04:28 |
|
gitster
| chowmeined: If you later find some problem with that topic, you can reopen that branch, either by resurrecting from done/a_topic, or making a new branch (if you deleted the topic after merging it into the integration branch, which I think is easier to manage) from the tip of the integration branch when the problem was discovered. | 04:29 |
|
| eMBee: something like "git log --all --since=20.days.ago"? | 04:29 |
|
eMBee
| yeah, but i don't want since, but only that day or month | 04:30 |
|
| and i have multiple days that i want | 04:30 |
|
gitster
| git commit set is a range operation. You cannot have 5 and 7 and 13 days ago without getting other dates in between. | 04:31 |
|
eMBee
| hmm | 04:31 |
|
| gitster goes back to real work... | 04:31 |
|
eMBee
| :-) | 04:31 |
|
| that's exactly what i want though | 04:32 |
|
| Randal waits for imaginary work to come to him | 04:32 |
|
| Dragon45 thinks Randal should get a job if he wants work | 04:32 |
|
chowmeined
| wait so like | 04:32 |
|
| gister wrote bunches of git? | 04:32 |
|
eMBee
| to many commits, i only want to look at all the branch points (which ara about half a dozend)\ | 04:32 |
|
Randal
| so like, yeah | 04:32 |
|
| he's only like, you know, the chief maintainer. :) | 04:33 |
|
Dragon45
| yeh | 04:33 |
|
| Linus -> gitster | 04:33 |
|
Randal
| you can like, hear him at the mp3 at, like http://www.twit.tv/floss19 | 04:33 |
|
Dragon45
| that's pretty much the hierarchy | 04:33 |
|
Randal
| no. not linus | 04:33 |
|
| Oh | 04:33 |
|
| ok | 04:33 |
|
| not mapping, but hierarchy | 04:33 |
|
Dragon45
| indeed | 04:33 |
|
chowmeined
| splendid.. git is really excellent | 04:33 |
|
Dragon45
| indeed it is :X | 04:33 |
|
| Randal is trying to figure out why flickr uploads are being so slow. | 04:34 |
|
gitster
| do you have some interesting picture other than you drinking beer? | 04:35 |
|
Randal
| indeed. | 04:35 |
|
| there are 4500 pictures there so far, and only 60 of them are of me. :) | 04:35 |
|
| there are another 30,000 pictures on my other site, which I will select about 20% of to bring over to flickr | 04:36 |
|
Dragon45
| where is your site? | 04:36 |
|
Randal
| I just need... "more time" | 04:36 |
|
| flickr.com/photos/randal-schwartz/ | 04:36 |
|
| although that will show the temporary pictures until they get moved into the right place. | 04:36 |
|
Dragon45
| http://en.wikipedia.org/wiki/Randal_L._Schwartz | 04:37 |
|
| O_o | 04:37 |
|
Randal
| and? | 04:37 |
|
Dragon45
| same one? | 04:37 |
|
Randal
| tis me | 04:37 |
|
Dragon45
| nothing just wondering | 04:38 |
|
| ah k =] | 04:38 |
| Insount → Insount_away | 04:55 |
|
chowmeined
| wow | 04:58 |
|
| famous people | 04:58 |
|
Dragon45
| um yes | 05:00 |
|
| ^_^ | 05:00 |
|
| not me though :( | 05:00 |
|
| maybe one day ;) | 05:00 |
|
| sleepztime | 05:01 |
|
| gnight all =] | 05:01 |
| ← Dragon45 left | 05:03 |
| → aroben joined | 05:03 |
| ← tongueroo left | 05:05 |
| ← hap left | 05:10 |
| → hap joined | 05:12 |
| ← KiBi left | 05:16 |
| → masonj_ joined | 05:18 |
| → johan-s joined | 05:23 |
|
EvanCarroll
| Randal: why did you /nick Randal and not merlyn? | 05:29 |
|
| you used to be merlyn | 05:29 |
|
Randal
| I'm still merlyn. Just not here. :) | 05:29 |
|
| I'm doing this because most people aren't smart enough to type /whois, apparently | 05:29 |
|
| gitster says /whois merlyn | 05:30 |
|
EvanCarroll
| Well I'm going to tell people you only let your special friends in the DND fetishist group call you "merlyn" now ;) | 05:30 |
|
| OK merlyn? | 05:30 |
|
Randal
| what ever. {sigh} | 05:30 |
| ← johan-s left | 05:33 |
| → bitbang joined | 05:33 |
| → devogon joined | 05:38 |
| → HackyKid joined | 05:44 |
| ← aroben left | 05:53 |
| → aroben joined | 05:54 |
| → pdmef joined | 06:00 |
| → KirinDave joined | 06:06 |
| ← orospakr left | 06:11 |
|
chowmeined
| DND? | 06:13 |
|
gitster
| dungeons and dragons? | 06:14 |
| → bdowning_ joined | 06:16 |
| ← bdowning left | 06:16 |
| ← KirinDave left | 06:21 |
| → Gin-geR joined | 06:22 |
| ← bitbang left | 06:23 |
| ← polyonymous_ left | 06:23 |
| → EnryAngr joined | 06:28 |
|
EnryAngr
| Hello. Can anyone tell me how to copy files from one branch to another? Merge often fails and I just want the latest file from another branch. | 06:31 |
| → dkagedal joined | 06:31 |
| ← ricky left | 06:31 |
| → GyrosGeier joined | 06:32 |
|
EvanCarroll
| uh check it [check]out | 06:38 |
| ← masonj_ left | 06:39 |
| → masonj_ joined | 06:39 |
|
EnryAngr
| EvanC: Please be more specific | 06:39 |
|
EvanCarroll
| Sure, something like `git checkout HEAD awesome.php` where HEAD is the branch or tag. or tree-ishness | 06:40 |
|
| or crap.pl, if you're a newblar. ;) | 06:40 |
|
EnryAngr
| That's what I needed, thanks | 06:42 |
| → lol_h joined | 06:45 |
| → MrPloddy29` joined | 06:48 |
| → Oejet joined | 06:48 |
| → elmex joined | 06:51 |
| ← MrPloddy29` left | 06:51 |
| → MrPloddy29` joined | 06:53 |
|
EnryAngr
| Ok, another question. How do I get a list of filenames which were changed for a commit? 'git log' shows commit messages and 'git log -p' show the contents which changed. I want something in between - just the filenames. | 06:53 |
|
phx
| git show ? or what was it | 06:54 |
|
| git show --cached | 06:54 |
|
| something similar iirc | 06:54 |
|
EnryAngr
| That looks about the same as git-log | 06:55 |
|
gitster
| "git show --stat", "git show --name-status", "git show --numstat", "git show --name-only", ... name your poison. | 06:55 |
| ← doublec left | 06:56 |
| → ricky joined | 06:56 |
|
EnryAngr
| gitster: Cool, thanks | 06:58 |
| ← MrPloddy29 left | 07:01 |
|
thiago_home
| EnryAngr: git what-changed | 07:10 |
| → pygi joined | 07:11 |
|
thiago_home
| erm, git whatchanged | 07:11 |
| ← pygi left | 07:12 |
|
EnryAngr
| Hmm.. so many options... | 07:13 |
| ← DrNick left | 07:14 |
|
thiago_home
| git whatchanged = git log --name-status -r -C -M (I think) | 07:14 |
| ← fhobia left | 07:14 |
|
gitster
| not at all. | 07:15 |
| ← lol_h left | 07:16 |
|
gitster
| whatchanged outlived its usefulness, unless you are an old timer. | 07:16 |
|
| log is a lot shorter-and-sweeter to type ;-) | 07:16 |
|
thiago_home
| not if you want to get the file listing | 07:17 |
|
| it's easier to type "whatchanged" than "log --name-status -r" | 07:17 |
|
| especially since I get tab-completion for the former | 07:17 |
|
EnryAngr
| I wish you could abbreviate. 'git co' should work for checkout. | 07:18 |
|
thiago_home
| EnryAngr: your problems are solved! | 07:18 |
|
gitster
| [alias] co = checkout | 07:19 |
|
| some people do "[alias] co = commit" though... | 07:19 |
|
thiago_home
| http://wincent.com/knowledge-base/Git_quickstart | 07:19 |
|
| commit is "ci" (check-in) | 07:19 |
|
gitster
| I condier "add" a check-in. | 07:19 |
|
| You check-in your changes piecemeal to the index to stage, and then make a commit out of it. | 07:19 |
|
thiago_home
| EnryAngr: if you're using the colouring options in the quickstart, don't forget to configure your less to run with -R | 07:20 |
|
gitster
| Or not to configure your less at all. We give that to you by default. | 07:20 |
| → fhobia joined | 07:21 |
|
thiago_home
| not working here | 07:21 |
|
| must $LESS not be set at all? | 07:21 |
|
| gotta go... | 07:22 |
| ← aroben left | 07:24 |
| ← dduncan left | 07:27 |
| ← EnryAngr left | 07:30 |
| ← fhobia left | 07:39 |
| → zmk joined | 07:46 |
|
BadQuanta
| Ok.. this is confusing me. I just did something to a file.. but I don't like what I did. I haven't commited I just want to rever the file. but git revert <file> doesn't seem to do that.. what do I need to do? | 07:54 |
|
| s/rever/revert | 07:54 |
|
siprbaum
| git checkout HEAD file | 07:58 |
|
BadQuanta
| oh.. thanks .. I tried that but didn't have the file part. | 08:00 |
|
| still learning :/ | 08:02 |
| ← felipe left | 08:05 |
| → keinfarbton joined | 08:11 |
|
thiago
| git-revert reverts a commit | 08:11 |
|
| svn revert is not equivalent to git-revert | 08:12 |
|
keinfarbton
| is there any known commercial git+trac project-hoster? | 08:12 |
| ← dkagedal left | 08:13 |
|
gitster
| how much are you willing to pay? | 08:17 |
|
keinfarbton
| svn+trac is about less 10$ per month | 08:17 |
|
thiago
| gitster: thinking of opening one? :-) | 08:17 |
|
gitster
| why not? we've been talking about a git company forever. | 08:17 |
|
| gitster goes to bed. | 08:18 |
|
keinfarbton
| this one does svn, http://hosted-projects.com/ | 08:18 |
| → fhobia joined | 08:20 |
|
fidodido
| git clone git://git.kernel.org/pub/scm/git/git.git | 08:20 |
|
| i just got a folder | 08:20 |
|
| with 25Mb | 08:20 |
|
| how do i get the entire history | 08:20 |
|
| every1 keeps talking about | 08:20 |
|
| i did this for my project | 08:20 |
|
| and jus got branch | 08:20 |
|
| and lost my entire history | 08:20 |
|
| when i deleted the older folder where i had the git history | 08:21 |
|
| it is kinda stupid | 08:21 |
|
| clone dont clone!!!! | 08:21 |
|
| am i missing somehting? | 08:21 |
|
thiago
| yes: explaining the problem. | 08:21 |
|
| what exactly did you run? | 08:22 |
|
fidodido
| how did i get the entire repo and histroy | 08:22 |
|
| by clone | 08:22 |
|
thiago
| by cloning | 08:22 |
|
| clone = download the entire history | 08:22 |
|
fidodido
| it doesnt lol | 08:22 |
|
thiago
| unless you tell it otherwise, that is | 08:22 |
|
| sure it does. What *exactly* did you run? | 08:23 |
|
fidodido
| git clone git://git.kernel.org/pub/scm/git/git.git | 08:23 |
|
| du -sh | 08:23 |
|
| 25M . | 08:23 |
|
| gitster: how to have subprojects in git | 08:23 |
|
| so i can have 2 projects | 08:23 |
|
| one is called | 08:23 |
|
| P1 n | 08:23 |
|
| thiago tries that | 08:23 |
|
fidodido
| and 2nd one is P2 | 08:23 |
|
thiago
| please stop flooding | 08:23 |
|
| finish your sentences before you press Enter | 08:23 |
|
fidodido
| so how to share code between P1 And P2 and ignore a few files for sharing between P1 and P2 | 08:23 |
|
| but they get tracked by git | 08:24 |
|
| is it possible to do it | 08:24 |
|
| ? | 08:24 |
|
| i was hoping to see if merge ignore file would do it | 08:24 |
|
| but there is no merge ignore | 08:24 |
|
| so the project is a variation of the same basic code | 08:24 |
|
thiago
| I've just tried that clone: it creates a 25 MB directory | 08:24 |
|
fidodido
| such as reddit | 08:24 |
|
| it clone lipstick | 08:25 |
|
| and so on | 08:25 |
|
| each has the same code | 08:25 |
|
thiago
| would you mind stop flooding?! | 08:25 |
|
fidodido
| but the front end is different | 08:25 |
|
| thiago: it doesnt hve the entire repo | 08:25 |
|
thiago
| that clone operation you tried did get the entire history. Why do you think it didn't? | 08:25 |
|
fidodido
| it jus does wat svn checkout | 08:25 |
|
| does | 08:25 |
|
| so what is the big deal? in git | 08:25 |
|
thiago
| no, it got the entire history. | 08:25 |
|
| I have *just* done that here and it got the entire history | 08:26 |
|
| all 11362 commits | 08:26 |
|
fidodido
| ok | 08:26 |
|
| it has only one branch master | 08:26 |
|
thiago
| those are your local branches | 08:26 |
|
fidodido
| the source dir that i cloned from had like 13 branches | 08:26 |
|
thiago
| run git branch -r or git branch -a to see the rest | 08:26 |
|
fidodido
| git branch -a | 08:27 |
|
| * master | 08:27 |
|
| origin/HEAD | 08:27 |
|
| origin/html | 08:27 |
|
| origin/maint | 08:27 |
|
| origin/man | 08:27 |
|
| origin/master | 08:27 |
|
| origin/next | 08:27 |
|
| origin/pu | 08:27 |
|
| origin/todo | 08:27 |
|
| thiago | 08:27 |
|
thiago
| what part of "stop flooding" did you not understand? | 08:27 |
|
fidodido
| so how do we acccess the other branches from here? | 08:27 |
|
thiago
| the "stop" or the "flooding"? | 08:27 |
|
fidodido
| sorry | 08:28 |
|
| thiago | 08:28 |
|
| no more | 08:28 |
|
thiago
| yes, no more. I'm not talking to you anymore. | 08:28 |
|
fidodido
| sorry man | 08:28 |
|
| ok | 08:28 |
|
| how to setup repos and share code with others | 08:29 |
|
| that part is really hard? | 08:29 |
|
| i dont get it | 08:29 |
| elmarco|food → elmarco | 08:33 |
| ← wart left | 08:39 |
| → wart joined | 08:44 |
| → meandtheshell joined | 08:46 |
| ← fhobia left | 08:54 |
| ← keinfarbton left | 09:04 |
| → whee joined | 09:13 |
| → Yuuhi joined | 09:14 |
| → kumbayo joined | 09:16 |
| → dkagedal joined | 09:33 |
| → cortilap joined | 09:35 |
| → Beket joined | 09:37 |
| → adante_ joined | 09:59 |
| → ferdy joined | 10:07 |
| Gin-geR → polyonymous | 10:12 |
| ← adante left | 10:14 |
| adante_ → adante | 10:14 |
| → janm joined | 10:17 |
| → felipe joined | 10:19 |
| ← masonj_ left | 10:24 |
| → Dentharg joined | 10:47 |
|
Dentharg
| Hi! | 10:47 |
|
| need some guidance on git usage | 10:49 |
| ← fultilt left | 10:54 |
|
vmiklos
| did you read the 'Everyday GIT With 20 Commands Or So' document? | 10:54 |
|
pasky
| gitster: Can git-gc remove any unreferenced objects? | 10:55 |
|
| gitster: Again the documentation sorta implies that it can't without --prune, but I suspect that it's again wrong and if the unreferenced object is packed it'll simply go away during the repack? | 10:55 |
|
Dentharg
| vmiklos, yes I did | 10:55 |
|
| vmiklos, I just need some advice on branch layout and working | 10:56 |
|
| vmiklos, is it better to have separate working directories when doing separate features | 10:56 |
|
pasky
| gitster: hmm, reading it more carefully again, it's hard to say, the description is confusing | 10:56 |
|
Dentharg
| vmiklos, or just pull into one place and do branch switching | 10:56 |
|
| vmiklos, I am keen Subversion user that wants to switch | 10:56 |
|
vmiklos
| Dentharg use branches | 10:56 |
|
| btw then read http://git.or.cz/course/svn.html | 10:57 |
|
Dentharg
| vmiklos, ok. thank you! | 10:57 |
|
siprbaum
| not so sure about the usage of brnaches | 10:57 |
|
| it is very dependent on how you work. if you normally do only one thing then branches are fine (because you switch to/from them), but if you are doing several things (say multitasking) then seperate working dirs could be beneficial. especially if it takes a long time to compile | 10:59 |
|
| but i agreee with vmiklos that branches are propably the best way to go, because humans tend to suck in multi-tasking. | 11:00 |
|
| (at least I do ...) | 11:00 |
|
gitster
| pasky, let's talk about what happens and how it does first, then what the implications are, and finally what are the desired behaviour. | 11:02 |
|
| 1. what happens and how. | 11:03 |
|
| gc is roughly "repack -a -d without prune" as long as objects are concerned. | 11:03 |
|
Dentharg
| siprbaum, currently I have several trunk checkouts to work on features and I am getting lost | 11:03 |
|
pasky
| yes | 11:03 |
|
Dentharg
| I only wish that git-svn was working ok on Windows :/ | 11:03 |
|
gitster
| Now, "repack -a -d" is "pack everything reachable" followed by "remove all preexisting packs". | 11:04 |
|
| That is "how" part -- so "what happens" is "objects in packs that are unreachable from refs will be gone". | 11:04 |
|
| But we do not lose loose objects. | 11:05 |
|
| 2. Implications. | 11:05 |
|
siprbaum
| Dentharg: ok. then. I missunderstood you. branches is the way to go | 11:05 |
|
pasky
| alternates broken in this case too, but at least no race conditions | 11:05 |
|
gitster
| not really, but I'll come back to that later. | 11:06 |
|
pasky
| hmm, there are race conditions :( | 11:06 |
|
Dentharg
| so branches it is. | 11:06 |
|
gitster
| A fetch that produces loose objects (i.e. walker and fetch that runs unpack-objects) do not race with gc. | 11:06 |
|
| But a fetch that leaves pack does (1) fetch and store pack (2) index pack and then (3) update ref. So if your gc runs REALLY FAST between the time (2) finishes and (3) finishes, then gc sees the just-built pack without noticing the new refs that want the objects in that pack, which repack -d will remove. | 11:07 |
|
| So in theory there still is a race. | 11:07 |
|
| That's the implications part. | 11:08 |
| → gitte joined | 11:08 |
|
gitster
| I am not sure about "3. Desired behaviour". | 11:08 |
|
| As pack plus index does not really have the traversal order information, it is kind of hard to reconstruct the "tips that ought to be kept if we do not want to lose any objects from this pack". | 11:09 |
|
hliusv561_
| gitster: Aren't those packs protected by .keep file? | 11:09 |
| ← Dentharg left | 11:09 |
|
| gitte wonders if gitster was already to bed... | 11:09 |
|
gitster
| That's right --- I forgot about that. | 11:09 |
|
pasky
| :) | 11:09 |
|
| gitster couldn't sleep. | 11:09 |
|
pasky
| :( | 11:10 |
|
gitte
| gitster: my consolation. | 11:10 |
|
gitster
| .keep is there to close the race between (2) and (3). | 11:10 |
| → sirNetwerk joined | 11:10 |
|
| gitster wonders if he knows hliusv561_ on the list. He never can connect IRC with the list... | 11:10 |
|
hliusv561_
| gitster: My name is ocassionally (at least twice) mentioned on list, but I haven't posted there myself. | 11:11 |
|
gitte
| gitster: yes, he is that long Finnish name ;-) | 11:11 |
|
| Oh? | 11:11 |
|
gitster
| I _think_ the desired behaviour ought to be "we do not want duplicate objects across multiple packs, and that is why we are repacking to consolidate more than one pack into one, but we do want to pack _all_ objects in existing packs". | 11:12 |
|
| It is rather hard to arrange, unfortunately. At least I do not think of a good way to do that offhand. | 11:12 |
|
| On the other hand, if we literally follow that, we cannot easily get rid of objects belonging to rewound commits that are no longer needed from packs. I guess we could honor --prune option there, though... | 11:14 |
|
pasky
| yes | 11:15 |
|
| that would be ideal | 11:15 |
|
sirNetwerk
| Concerting the post "unaware of the importance of git gc": If I never use any packs at all and keep everything with objects, will branch be terribly slow? | 11:15 |
|
gitster
| We probably could re-sort existing .idx file in the offset order to emulate the traversal order the original rev-list would have given to pack-objects. | 11:15 |
|
hliusv561_
| gitster: I was once thinking about option to pack all unreachable objects to second packfile which could then be copied to alternates. Probably has severe problems with race conditions though. :-( | 11:16 |
| → doublec joined | 11:16 |
|
gitster
| sirNetwerk: not "branch" but literally everything will be slow. | 11:16 |
|
| You will be left wondering, literally, why everybody else would say "git is fast". | 11:16 |
|
sirNetwerk
| I see no reason why branch would be slow. But continue your current -more interesting- discussion. | 11:17 |
|
| gitte did not yet start reading that monster thread. | 11:17 |
|
gitster
| If you've never repacked and have been working on a project of size of the kernel, you haven't seen git ;-) | 11:17 |
|
| I suspect Linus was talking about "branch switching", not just "creating a branch". | 11:18 |
|
sirNetwerk
| Ahh right. For me the solution (thinking how big the repo will be in 10 years!), is to use "git clone --depth". Who wants to bisect 1000000 commits back? | 11:18 |
|
| And keep everything as plain objects. | 11:19 |
| → pygi joined | 11:19 |
|
gitster
| hliusv561_: I think the issue is how you would create the list of those "unreachable" objects to pack in the secondary one. | 11:19 |
|
doublec
| how does git handle binary files when merging? | 11:19 |
|
siprbaum
| doublec: you have to decide which one to take | 11:20 |
|
doublec
| so you get a merge conflict then make a decision? | 11:20 |
|
siprbaum
| yes | 11:20 |
|
gitster
| Well, the initial prediction (I think it was after 2-3 weeks of use) was that in 2 years the kernel repository would be 3GB and that growth rate is acceptable. Shows that Linus is not perfect in predicting the future ;-). | 11:20 |
|
doublec
| how does it know what is a binary? | 11:20 |
|
hliusv561_
| gitster: Generate list of all loose objects and objects in non-kept packs and do set complement. Obiviously that option would only make sense only with -a. | 11:20 |
|
doublec
| This blog post mentions a problem so though I'd check: http://www.dekorte.com/blog/blog.cgi?do=item&id=2895 | 11:21 |
|
gitster
| doublec: traditionally, it "guesses" exactly the same way as GNU diff does. Recent git you can tell git "this path is binary, do not touch". | 11:21 |
|
doublec
| great, thanks! | 11:21 |
|
| what is the way to tell git that btw? | 11:22 |
|
gitster
| "man 5 gitattributes" | 11:22 |
|
doublec
| thanks gitster | 11:22 |
|
madduck
| so in migrating a package from debian dpatch to git feature branches, i am faced with the task to convert a patch-in-a-file to a branch. this means that I really want to remove the file from both branches after merging the patch into the second branch. this, however, requires two commits | 11:23 |
|
| the file removal in the original branch | 11:24 |
|
| and the patch application and file removal in the feature branch | 11:24 |
|
| i want to logically tie these in with each other, but I guess that this is not possible, huh? | 11:24 |
| ← sirNetwerk left | 11:26 |
|
siprbaum
| madduck: why are there 2 branches involved? | 11:26 |
| → Lash| joined | 11:26 |
|
madduck
| fair question; simply because it's a change from upstream i need to track separately | 11:26 |
|
| the idea is that i have an upstream branch and a bunch of feature branches | 11:26 |
|
| and an integration branch where i produce the final package | 11:26 |
|
| some feature branches are intended to go upstream, some are debian specific | 11:27 |
|
| so i'd like to keep them around | 11:27 |
|
| but then on the other hand, i don't know how to really work with those. | 11:27 |
|
| there are two models i can follow: | 11:27 |
|
gitster
| Currently you have a patchfile that contains both? | 11:27 |
|
madduck
| both? | 11:27 |
|
gitster
| both "for upstream" and "kept within debian" | 11:28 |
|
madduck
| no, i have separate patch files in both groups | 11:28 |
|
| it's really a question about comverting patch files to branches | 11:28 |
|
| orig branch has patch files, and i want to replace each of those files with a branch off orig | 11:28 |
|
| the problem is that it seems impossible to do this with one commit | 11:29 |
| ← meandtheshell left | 11:29 |
|
madduck
| i have to commit rm patchfile to orig | 11:29 |
|
gitster
| you would start from upstream, then have a branch that forks from it that holds "for upstream" fixes. | 11:29 |
|
madduck
| and commit git-apply patchfile && rm patchfile to the feature branch | 11:29 |
|
gitster
| another fork, again from upstream, would hold "debianization". | 11:29 |
|
| No patches, just maintain branches. | 11:29 |
|
madduck
| yes, i want to get rid of patchfiles | 11:30 |
|
| which means i have to remove them from the repo after applying them to individual, new branches | 11:30 |
|
gitster
| When it comes to finally "package debianization", you can take diff between branches involved and produce the *.diff file, no? | 11:30 |
|
madduck
| there are two issues at hand and i think we're talking about different ones. :) | 11:30 |
|
| but i think mine's a question that i've already answered, so let me respond to what you said... | 11:30 |
|
| there are two models to follow when packaging with vcs: (a) one branch for each distro release and (b) one branch for each package version | 11:31 |
|
| well, there is (c): one branch for everything, but... | 11:31 |
|
| so for debian, i'd track upstream and branch off for sarge/etch/lenny | 11:31 |
|
| i also maintain separate feature branches, all branched off upstream at one point. | 11:32 |
|
| those feature branches are long-living branches, meaning they never get merged back into upstream | 11:32 |
|
| wait, lemme draw this... | 11:32 |
| → Hacky joined | 11:33 |
|
| gitster falls off the chair, dozing... | 11:34 |
|
| madduck needs a proper tool for quick sketches. gimp and inkscape are just painful. | 11:34 |
|
| madduck takes pen and paper and scans | 11:35 |
| → Sho_ joined | 11:37 |
|
| gitster finally crashes... | 11:37 |
| ← jody left | 11:37 |
|
madduck
| :) | 11:38 |
|
| almost done | 11:38 |
|
gitte
| Good night gitster | 11:39 |
|
madduck
| http://scratch.madduck.net/__tmp__branches.pdf | 11:39 |
|
| so F1/F2 are debian-specific branches i merge into each release branch | 11:40 |
|
| F3 is a feature branch/bug fix that upstream accepted between sarge and etch | 11:40 |
|
| and F4 is a feature branch that i spawned out of the sarge branch and now merge into etch and lenny | 11:41 |
|
gitte
| madduck: you need a tablet ;-) | 11:41 |
|
madduck
| gitte: i really do. | 11:41 |
|
| madduck writes it down on the "things to consider" list | 11:41 |
|
madduck
| that's one model. | 11:41 |
|
siprbaum
| madduck: ok, but whats the actual question on this organisation? | 11:42 |
|
madduck
| siprbaum: well, there is another model and i basically would love to get some input | 11:42 |
|
hliusv561_
| madduck: How git.git does it is to merge feature branches 'stablest first' and then merge these branches upwards towards more unstable branches. | 11:42 |
|
madduck
| the other model has the same feature branches and one debian branch and when sarge is released, then branch off for security fixes | 11:43 |
|
| siprbaum: my original question was a different one, but this organisation has been in my head for days and i keep trying it and not knowing whether i am doing the right thing | 11:44 |
|
| since it's hard to simulate in ways. | 11:44 |
|
| hliusv561_: i am not sure i understand what you mean. | 11:44 |
|
siprbaum
| Ah. Now i think I understand | 11:45 |
|
| madduck: in your drawing you always have to recreate the 'debian' folder from scratch, because you build your sarge, etch, sid whatever branch on top of upstream. Am I correct? | 11:46 |
|
madduck
| well, sort of. assume F1 is the "debiandir" branch, which adds it to each distro branch | 11:46 |
| ← Beket left | 11:47 |
| ← HackyKid left | 11:49 |
|
siprbaum
| and the other way to do it is ... ? | 11:50 |
| ← zmk left | 11:50 |
| → Beket_ joined | 11:50 |
|
madduck
| to branch off upstream once, branch debian feature branches of this debian branch and upustream feature branches off upstream (but merge them into debian) | 11:51 |
|
| and when e.g. lenny is released, the branch a lenny-stable branch off the debian branch | 11:51 |
|
Beket_
| Hello people. Could anyone hint me regarding this ? http://rafb.net/p/f2EC2W97.html Thank you in advance | 11:51 |
|
hliusv561_
| madduck: If some feature branch goes to maint (most stable), then maint is merged to master, which is merged to next (least stable). This would go on to pu, but pu is rebased instead. | 11:51 |
|
madduck
| but keep developing in the debian branch (which is 'master', really, i guess) | 11:51 |
|
| madduck reads http://git.or.cz/gitwiki/Notes | 11:52 |
|
hliusv561_
| Beket_: Don't try to merge with uncommitted changes in working tree... | 11:53 |
|
madduck
| Beket_: you need to commit local changes before you merge | 11:53 |
|
| damn, hliusv561_ was faster. :_) | 11:53 |
|
Beket_
| In PC1: I commited those changes localy and the pushed them to REMOTE. From PC2: I want to pull those changes | 11:53 |
|
hliusv561_
| Beket_: Commit first on PC2. | 11:54 |
|
| Beket_: Or if the changes are not ready, stash them. | 11:54 |
|
Beket_
| oh thanks people :) | 11:54 |
|
| Yes, it worked now.. thanks again! | 11:55 |
| ← pygi left | 11:55 |
|
madduck
| hliusv561_: okay, so my second model seems to be pretty exactly what git does, master is the debian branch, maint is the *-stable branch. | 11:56 |
|
hliusv561_
| madduck: Instead of arrows from feature branches to all three release branches, I think there should be be arrows from sarge to etch and ecth to lenny... | 11:56 |
|
madduck
| i am a little unclear as to maint though, since it says that maint is branched off master at each featrue release | 11:57 |
|
| i did not know you can branch a branch multiple times off master. | 11:57 |
|
siprbaum
| its just a merge of maint and master | 11:57 |
|
| and they diverge again so the branched again from master :-) | 11:57 |
|
madduck
| siprbaum: so when 1.5.4 will be released, maint will be for 1.5.4 and there won't be a maint branch for 1.5.3? | 11:58 |
|
| so if there's a bug in 1.5.3 after 1.5.4 is out, it won't get fixed? | 11:58 |
|
hliusv561_
| madduck: Besides requirement that history graph is DAG (so commits can be topologically sorted), the topology of repository history is unrestricted. | 11:58 |
|
madduck
| hliusv561_: well, yes. i am trying to decide whether the git model or the one in my drawing are more suitable for debian^W distro packaging. | 11:59 |
|
| and since we have to support up to 6 different versions of each package, i think the model i drew makes most sense | 11:59 |
|
| but then again, there are little functional differences. | 11:59 |
|
hliusv561_
| madduck: Save the earlier branch heads and treat earlier ones as more stable. | 11:59 |
|
siprbaum
| madduck: in your case you need a maint-sarge, maint-etch, maint-... branch. I think in git the maint branch is just for the actuall stable release | 11:59 |
|
madduck
| siprbaum: yes. | 12:00 |
|
| hliusv561_: save them, as in maint-sarge, maint-etch branches? | 12:00 |
| ← jlh left | 12:00 |
| → jlh joined | 12:00 |
|
hliusv561_
| madduck: You pick the names. :-) | 12:00 |
|
madduck
| weeeh! :) | 12:01 |
|
| so current git master is what will be in 1.5.4 and current git next is what might be in 1.5.5? | 12:01 |
|
| as in stuff that's too much for 1.5.4 at this point, so it's kept for a future release? | 12:01 |
|
hliusv561_
| madduck: Nope. Next is more unstable changes that are not "proven". | 12:02 |
|
madduck
| 'experimental' in debian parlance, then | 12:02 |
|
hliusv561_
| madduck: Or actually, changes that are still unstable, but seem likely not to have serious fundamental issues. | 12:02 |
|
| madduck: pu contains changes even more unstable than that. | 12:03 |
|
madduck
| pu would be my scratch branch | 12:05 |
|
| thanks guys, it' | 12:07 |
|
| s been a good and most helpful discussion | 12:07 |
|
| i think i'll just have to try it out now. | 12:07 |
|
| and i guess the git model makes most sense, really. | 12:08 |
|
hliusv561_
| madduck: And if I noticed I made a mistake and merged some feature branch to more unstable branch than what was needed, I would merge it to proper branch, merge it up the chain, doing merges where it is already present using 'ours'. | 12:10 |
| → rodserling joined | 12:16 |
| → madewokherd joined | 12:23 |
| → jcollie joined | 12:40 |
| → lcapitulino joined | 12:43 |
| → WackyKid joined | 12:46 |
|
madduck
| i have a presentation template which i would like to store in a public repository. i also have a repository for e.g. my phd work. when i have to give a new talk, i would like to clone the presentation template *into* the phd repo. how would i do that? is it at all possible? | 12:46 |
| ← doublec left | 12:47 |
| ← Lash| left | 12:50 |
|
hliusv561_
| madduck: fetch the branch containing presentation template into private repo. | 12:51 |
|
madduck
| hliusv561_: sure, i can fetch it alright, but what i want is to be able to use the branch as a template. | 12:57 |
|
hliusv561_
| madduck: Read it into some suitable subdirectory, branch it off and keep as independent branch or submodule? | 13:00 |
|
madduck
| sure. but how do i then clone it into a repo? | 13:01 |
|
| let's make an example: | 13:01 |
|
| git documentation is maintained in asciidoc | 13:02 |
|
| there may be a template with basic stuff every document in git/Documentation should have | 13:02 |
| ← Hacky left | 13:02 |
|
madduck
| and because it's the same as in Linux (assume for now), it's a separate repo: repo.or.cz/docu.git | 13:03 |
|
| now let's say I want to add git/Documentation/foo.txt: | 13:03 |
|
hliusv561_
| madduck: Sounds job for subprojects... | 13:03 |
|
madduck
| i know i can add a remote for repo.or.cz/docu.git or use a submodule | 13:03 |
|
| in git/Documentation/templates and then I'd have git/Documentation/templates/template.txt | 13:04 |
|
| but to create git/Documentation/foo.txt, I'd have to just copy the file | 13:04 |
|
| and there would be no notion in the history that the file's ancestor is templates/template.txt | 13:05 |
|
| am i making sense? | 13:05 |
|
vmiklos
| sure. the history is not shared between the two repos | 13:06 |
| → d0k joined | 13:17 |
| → cmarcelo joined | 13:19 |
| → weazzle joined | 13:21 |
|
slaq
| hrm | 13:22 |
|
| anyone know if there's anything like trac or redmine for git? | 13:23 |
| ← rodserling left | 13:24 |
|
gitte
| slaq: not that I know of. IIRC someone wanted to look into porting Trac to use Git instead of Subversion, but I never heard of any progress there. | 13:26 |
|
pickscrape
| I've seen mention of a couple of git plugins for trac | 13:27 |
|
| Just google for git trac plugin and see what you find. | 13:28 |
|
slaq
| i found a few patches and "experimental" stuff | 13:30 |
|
| but nothing to warrant a testdrive | 13:30 |
|
| i also found an interesting discussion on the git ml about a distributed bugtracke | 13:31 |
|
| too bad this all doesnt seem to be ready yet.. i'm torn, want to stick with git but some of the svn tools are really useful :\ | 13:31 |
| → bdiego joined | 13:32 |
|
gitte
| slaq: so you have to options: work on some solution with Git, or use Subversion instead. | 13:34 |
|
| Pick one. | 13:34 |
| ← rlb3 left | 13:38 |
|
vmiklos
| hmm | 13:40 |
|
| i have a file, say foo.c. there are 3 versions: #1 is HEAD, #2 is in index, #3 is in the working directory. is there any way to set the index version to HEAD without modifying the working dir? | 13:41 |
|
| hap is impressed how fast the git commit goes | 13:41 |
|
vmiklos
| imho git reset HEAD foo.c will do what i want, but it will touch the working dir, too | 13:42 |
|
gitte
| vmiklos: AFAIK "git reset HEAD foo.c" (which is implicitly --mixed) will not touch the working dir. | 13:43 |
|
| hap: hehe | 13:44 |
|
vmiklos
| and --soft is what will? | 13:44 |
|
| ah, no | 13:44 |
|
gitte
| git reset with paths is not possible with --soft. | 13:44 |
|
| vmiklos goes and reads the man page again | 13:45 |
|
vmiklos
| yes:) | 13:45 |
|
gitte
| There has been talk about adding a "--cached" option to git-checkout, though. | 13:45 |
|
vmiklos
| which would update the working dir from index or would update the index from HEAD? | 13:45 |
| → nikodemus` joined | 13:45 |
|
hap
| gitte: wait, i didnt try mercurial yet ;) | 13:48 |
| ← Beket_ left | 13:55 |
| → KirinDave joined | 13:56 |
|
gitte
| hap: hehe. | 14:04 |
| ← KirinDave left | 14:07 |
| → jackbravo joined | 14:09 |
| → aroben joined | 14:11 |
| ← lkjasa left | 14:21 |
| ← aroben left | 14:25 |
| → stouset joined | 14:26 |
| → KirinDave joined | 14:28 |
|
madduck
| http://git.madduck.net/v?p=tpl/s5/slides.git;a=summary | 14:32 |
|
| the shortlog field is empty, probably because there is no default HEAD | 14:32 |
|
| but how can i make it appear e.g. with the tip of the en branch? | 14:33 |
|
| aaaah | 14:33 |
| ← pdmef left | 14:33 |
|
madduck
| HEAD was actually pointing at a nonexistent ref | 14:33 |
|
| gosh i love how git is so filebased | 14:33 |
| ← gitte left | 14:34 |
|
GyrosGeier
| I argued against sections in the config file and suggested we use different files for that, but nooo, they wouldn't listen... :-( | 14:34 |
|
hliusv561_
| GyrosGeier: Very few filesystems support small files properly... | 14:35 |
|
GyrosGeier
| indeed | 14:35 |
| → myrizio joined | 14:35 |
| ← weazzle left | 14:37 |
|
madduck
| here is an idea about maintaining home in git across separate machines. of course i can just pull in repositories on each machine as i need them, but i somehow like the thought of just setting up a machine and having everything automatically go into its proper place. | 14:38 |
|
| so i was thinking: make a directory hierarchy in ~/.gits and put the git config files in there | 14:38 |
|
| then check in .gits into the machine repo | 14:39 |
|
| now you can branch off that repo and invoke a shell script | 14:39 |
|
| which then iterates ~/.gits and finds config files; e.g. for ~/.gits/.etc/mutt/config, it then git-inits ~/.etc/mutt | 14:39 |
|
| and hardlinks (or symlinks) the config file to ~/.etc/mutt/.git/config | 14:40 |
|
| the does a git pull and move on. | 14:40 |
|
| the config files store everything that's important, such as origin location and identity to use for this repository. | 14:40 |
| dwmw2_gone → dwmw2 | 14:41 |
| → mankind_tweezer joined | 14:43 |
|
mankind_tweezer
| Is it possible to use the "filter" attribute to add something like a time-stamp to a checked-out file? | 14:46 |
| → krh joined | 14:46 |
|
hliusv561_
| mankind_tweezer: You could add timestamp of checkout, but not much else. | 14:47 |
|
| mankind_tweezer: Since revision checked or the pathname of file are not passed into filter. | 14:47 |
|
mankind_tweezer
| hliusv561_: hmm, I see | 14:47 |
|
| does it operate before or after "ident"? | 14:48 |
|
hliusv561_
| mankind_tweezer: IIRC, gitattributes(5) documents that... But I don't offhand remember. | 14:49 |
|
mankind_tweezer
| ah, it's after... | 14:49 |
|
| so it can get the id of the blob | 14:49 |
|
| but what can i do with that -- is there some way to take that id and find out the corresponding commit(s)? | 14:50 |
|
hliusv561_
| mankind_tweezer: No. | 14:51 |
|
mankind_tweezer
| d'oh | 14:51 |
|
| i guess this is one of those things i'm not supposed to try to do | 14:51 |
|
hliusv561_
| mankind_tweezer: Exactly. You are supposed to use the repository data if you have it and add the data only on export. | 14:52 |
|
mankind_tweezer
| hmm. the use-case here is that I am using git to manage a bunch of LaTeX documents. when i print one, i'd like to have a stamp on it that tells me useful stuff like which branch it's from | 14:53 |
|
hliusv561_
| mankind_tweezer: There is patch that adds full keyword support to git-archive. | 14:53 |
|
| mankind_tweezer: Branch commit is on is not well-defined in git. | 14:53 |
|
mankind_tweezer
| right, so i would settle for knowing which branch _i_ am on, i guess. maybe i should try to get LaTeX to call git directly | 14:54 |
| → orospakr joined | 14:54 |
|
hliusv561_
| mankind_tweezer: There's shell escapes in LaTeX? | 14:54 |
|
mankind_tweezer
| i believe it's possible to do that | 14:55 |
|
| although it's not enabled by default... | 14:55 |
|
| (for obvious reasons) | 14:55 |
|
hliusv561_
| mankind_tweezer: Principle of Maximal Authority... | 14:55 |
|
mankind_tweezer
| hmm, what's that? | 14:56 |
| → aroben joined | 14:57 |
|
hliusv561_
| mankind_tweezer: The general tendency of systems to assign truly excessive authority to executing code, instead of the apporiate authority it needs... | 14:57 |
|
mankind_tweezer
| ahh, i see. yes, indeed, that's the problem here | 14:58 |
|
| it seems that if you run latex with "latex --shell-escape" then it's on... so i can have that call git, i guess. | 14:58 |
|
| then the only problem is that sometimes i want to send these documents to other people, who aren't using git | 14:59 |
|
hliusv561_
| mankind_tweezer: For example, why does PNG image decoder have autority to directly write to filesystem? | 14:59 |
|
| mankind_tweezer: git-archive extended keyword support should soon be added. There's patch for that already (altough it has performance problems). | 15:00 |
|
mankind_tweezer
| okay, maybe that's the way to go. | 15:00 |
|
| thanks, this was extremely helpful | 15:00 |
|
| it sounds like if i want to do this in a uniform way i should perhaps use git-archive even when i myself am printing a document, somehow | 15:01 |
|
hliusv561_
| mankind_tweezer: Or stuff makefile there that could print it... | 15:02 |
| → raw-bin joined | 15:03 |
| → QuercusMax joined | 15:07 |
| ← QuercusMax left | 15:08 |
| → QuercusMax joined | 15:10 |
| ← KirinDave left | 15:17 |
| ← aroben left | 15:22 |
| → aroben joined | 15:26 |
| → pygi joined | 15:28 |
| ← tchan left | 15:31 |
| ← aroben left | 15:32 |
|
tsuna
| Say I have a branch A in SVN. In git, I create a new branch B which I publish in SVN with git-svn dcommit. Later, some commits have been made in SVN on both A and B. I fetch the new changes. Now, can I easily know whether a commit in A has been merged in B? | 15:37 |
| → tchan joined | 15:38 |
| → KiBi joined | 15:41 |
|
tokkee
| tsuna: Have a look at git-cherry - is that what you want? | 15:43 |
| → p4tux joined | 15:43 |
|
madduck
| tsuna: you cannot.svn does not do merge tracking yet | 15:43 |
| → KirinDave joined | 15:44 |
|
madduck
| is there any way to be able to use $HOME or ~ in git-config? My homedirs on three machines are in different places and I'd like to keep some settings synchronised | 15:47 |
|
| or relative paths? | 15:47 |
| → rgk joined | 15:48 |
| ← nashdj left | 15:54 |
|
madduck
| oh, .. is . since the paths are relative to $GIT_DIR | 16:03 |
|
| so ../.. is .. :) | 16:03 |
|
KiBi
| heh :) | 16:03 |
| → vegard joined | 16:07 |
| ← jackbravo left | 16:08 |
| → jackbravo joined | 16:08 |
| → bentob0x joined | 16:08 |
|
vegard
| hello. I am having trouble compiling git with the sun C compiler. can somebody help me with this? | 16:09 |
| → robin joined | 16:13 |
| ← amfwrk left | 16:13 |
|
madduck
| so yeah, i admit i am trying crazy stuff, but what is this all about: | 16:15 |
|
| fatal: unable to add ul/.git/config to index | 16:15 |
| ← mankind_tweezer left | 16:15 |
|
madduck
| yes, i am trying to add the config file of a lower $GIT_DIR to the current one | 16:15 |
| → amfwrk joined | 16:16 |
| → aroben joined | 16:18 |
| ← QuercusMax left | 16:19 |
| ← KirinDave left | 16:19 |
| dwmw2 → dwmw2_gone | 16:19 |
| → QuercusMax joined | 16:24 |
|
robin
| QuercusMax: hi | 16:27 |
|
QuercusMax
| hey | 16:27 |
|
robin
| I've update my pu branch with fixes to the history view | 16:28 |
|
QuercusMax
| excellent, i'll take a look | 16:28 |
|
| if I get a chance this evening, i'm going to see if I can finish up my ReadTree implementation, and probably merge the common parts with WorkdirCheckout | 16:29 |
|
| I think I've got all the D/F conflict handling taken care of, which was actually surprisingly straightforward | 16:29 |
| → gnilor joined | 16:32 |
| → rtmfd_icbm joined | 16:33 |
|
gnilor
| if I have a git kernel tree (linville/wireless-dev.git) and i want to swich to another tree (davem/net-2.6.24) that is possible without cloning it all over again? how? | 16:34 |
|
| i've been issueing varients of git pull commands, but always run into som "need update" or other error messages/warnings | 16:34 |
|
QuercusMax
| gnilor: you probably want fetch instead of pull | 16:35 |
|
| then git-checkout -b mybranch davem/net-2.6.24 | 16:35 |
|
| that will create a new branch cloned from davem/net-2.6.24, and switch to it | 16:36 |
|
| pull is the same as fetch + merge | 16:36 |
|
gnilor
| tnx, the fetch worked, now just the branch switching thing | 16:37 |
| ← pygi left | 16:38 |
|
QuercusMax
| gnilor: did you set up a remote? that's probably the simplest way to do it | 16:39 |
| ← kumbayo left | 16:39 |
|
QuercusMax
| gnilor: git-remote add somebody git://domain/path.git | 16:39 |
|
| gnilor: git fetch somebody | 16:39 |
|
| gnilor: that will set up a remote entry, so whenever you want to fetch, you can just use that remotename as an alias, instead of typing the whole url | 16:40 |
|
gnilor
| now when i do "git branch -r" i see a somebody/master , but checking out gives a warning/error saying some file would be overwritten on merge | 16:42 |
| → KirinDave joined | 16:43 |
| ← lcapitulino left | 16:44 |
| → workkevin joined | 16:44 |
|
gnilor
| aha -f did it. thanks a lot, saved me quite some time going through all the manuals .. guess i'm postponing the inevitable .. but thanks ! | 16:45 |
| ← aroben left | 16:47 |
| → lcapitulino joined | 16:50 |
| ← dkagedal left | 16:51 |
| → fidodido_ joined | 16:53 |
| ← fidodido left | 16:53 |
| → kumbayo joined | 16:55 |
| → mario_ joined | 16:57 |
| meyering → jim-away | 16:58 |
| mario_ → pygi | 16:58 |
| jim-away → meyering | 16:58 |
| → zeenix joined | 17:01 |
|
zeenix
| hi | 17:01 |
|
| i've been using git-svn for more 2 months now and there hasn't been any major problem until now | 17:02 |
|
| $ git-svn rebase | 17:03 |
|
| Current branch master is up to date. | 17:03 |
|
| $ git-svn dcommit | 17:03 |
|
| Merge conflict during commit: Your file or directory 'ChangeLog' is probably out-of-date: The version resource does not correspond to the resource within the transaction. Either the requested version resource is out of date (needs to be updated), or the requested version resource is newer than the transaction root (restart the commit). at /usr/bin/git-svn line 405 | 17:03 |
|
| i'll appreciate if anyone can help here? | 17:03 |
|
| the last commit was actually merge conflict resolution so that might have anything to do with it? | 17:04 |
|
WackyKid
| merge with another svn branch? | 17:04 |
|
zeenix
| no! my own git branch | 17:05 |
|
WackyKid
| ah | 17:05 |
|
zeenix
| elmarco: any clue? | 17:07 |
|
WackyKid
| i heard that git-svn gets its information about which svn branch to commit to/pull from from certain lines in the commit message... | 17:07 |
|
| and sometimes this confuses it after merge | 17:07 |
|
| dunno the details though... | 17:07 |
|
zeenix
| hm.. | 17:07 |
| ← QuercusMax left | 17:08 |
|
elmarco
| zeenix: this has been change recently | 17:11 |
|
| zeenix: it still yet not perfect, now I use set-tree to commit to our svn ;( | 17:11 |
|
| I even do grafts manually.. so don't ask me | 17:12 |
|
| it is a mess for me right now :) | 17:12 |
|
| zeenix: conflicts merge might be like branch/merging | 17:13 |
|
| zeenix: in that case, this you lost the parent relation (as far as I understand) | 17:13 |
|
| and git-svn is confused, you can set a graft manually | 17:13 |
|
WackyKid
| i never had a problem with git-svn, but then i usually do rebase instead of merge heh | 17:14 |
|
elmarco
| rebase did not work for me, because I work with several branch comming from different repository (basically, debian, upstream and internal - all svn) | 17:16 |
|
| and I work locally with git (happy world) | 17:16 |
|
WackyKid
| hehe, indeed :-) | 17:16 |
| → QuercusMax joined | 17:18 |
| → mog joined | 17:18 |
|
WackyKid
| for me git-svn already has many advantages over plain svn without even using git's merge support :-) | 17:18 |
|
PerlJam
| WackyKid: such as? | 17:19 |
|
WackyKid
| well, for one thing, after git-gc my git-svn repositories are smaller than svn checkouts :-) | 17:19 |
|
| and the git-gui thingy with per-hunk committing is really really neat | 17:20 |
|
| and of course all history browsing is blazingly fast compared to svn | 17:20 |
|
| and then there's git-rebase to clean up a local commit series before i push it so the svn repo | 17:20 |
|
PerlJam
| I've been using git and svn as if they were in separate universes. I should probably checkout git-svn. | 17:21 |
|
| (unintentional pun) | 17:21 |
|
| :-) | 17:21 |
|
WackyKid
| :-p | 17:22 |
|
elmarco
| I miss git-svn tag though | 17:22 |
|
| it could be possible to do it I think | 17:22 |
|
WackyKid
| and i didn't even mention being able to make local commits without publishing then to the server | 17:23 |
|
| i'm already taking stuff for granted :-p | 17:23 |
|
elmarco
| (the same is true for branching, but I don't really need it since I use git ;) | 17:23 |
| → lyakh joined | 17:23 |
| ← elmex left | 17:28 |
| → elmex joined | 17:29 |
| ← Tv left | 17:29 |
| → dkagedal joined | 17:33 |
|
WackyKid
| cd #konversation | 17:35 |
|
| oops :-p | 17:35 |
|
capisce
| /join | 17:35 |
|
WackyKid
| indeed | 17:35 |
|
| my mind had only switched from shell to irc halfway :-p | 17:36 |
| → lichtblau joined | 17:36 |
| ← cortilap left | 17:37 |
| ← myrizio left | 17:49 |
| ← GyrosGeier left | 17:51 |
| ← QuercusMax left | 17:53 |
|
zeenix
| elmarco: sorry! was traveling to home :) | 17:54 |
|
| elmarco: what is a 'graft'? | 17:54 |
|
robin
| zeenix: it is a mechanism to overide the commit relationships | 17:56 |
|
| mostly intended for adding relations where none exists | 17:56 |
|
elmarco
| or when it is lost ;) | 17:56 |
|
robin
| no | 17:56 |
|
| you cannot lose the parents | 17:56 |
|
elmarco
| robin: not my fault if git-svn lose the relation in 1.5.2 | 17:56 |
|
| and 1.5.3 cvs is weird when merging with branch not coming from svn | 17:57 |
| ← WackyKid left | 18:02 |
|
zeenix
| i just reset my master branch to the commit before the merge | 18:03 |
|
| but i still get the same error from `git-svn dcommit` | 18:03 |
| → KirinDave_ joined | 18:03 |
|
zeenix
| ok! now it's good after i did a `git-rebase` | 18:05 |
| ← dkagedal left | 18:10 |
| → dorileo joined | 18:12 |
| ← KirinDave left | 18:16 |
| KirinDave_ → KirinDave | 18:16 |
| → Beket_ joined | 18:17 |
|
tsuna
| I just updated to git.git master HEAD and git status doesn't seem to work anymore (git: 'status' is not a git-command) whereas git-status does, any idea? | 18:18 |
|
Beket_
| Hello people. Suppose I branch master at time A. Then I work at my branch. At time A' master branch has evolved and I want to incorporate those changes in my own branch. What do I need? git-rebase ? Thanks | 18:19 |
| ← yorgen1512 left | 18:19 |
| → Tv joined | 18:20 |
| ← Tv left | 18:20 |
|
tsuna
| Beket_: it depends. git-merge will create a new commit that incorporates the changes made in the original branch (which will lead to non-linear history) whereas rebase will pop your changes, apply the changes of the other branch and try to re-apply your changes on the top of the new HEAD (which is usually better for topic branches that contain unpublished changes) | 18:20 |
|
| Hmm for some reason git help -a prints ``git commands available in '/Users/tsuna/bin'`` and then no commands are listed (whereas my git is installed under /usr/local/bin/git* that is prefix=/usr/local, the default prefix). | 18:22 |
|
Beket_
| Thank you tsuna | 18:22 |
|
tsuna
| Beket_: np, but remember that you shouldn't use rebase on a branch where commits have been published | 18:23 |
| → aroben joined | 18:24 |
|
Beket_
| sure, thanks for the hint | 18:24 |
|
tsuna
| ghee, I rebuilt everything with make clean all prefix=/usr/local and it's working now... I probably messed up my last compile or something oO | 18:26 |
| → HackyKid joined | 18:27 |
| → Lash| joined | 18:29 |
|
male
| Does anyone here do work on gitk? | 18:34 |
| ← raw-bin left | 18:34 |
| → Eludias joined | 18:34 |
| ← devogon left | 18:35 |
| elmarco → elmarco|gym | 18:35 |
| → devogon joined | 18:37 |
|
male
| Nothing? Does anyone else have problems with gtik's interactive with window managers? | 18:37 |
|
| Gitk inexplicably set the user-specified-location hint to 0,0. No matter what. | 18:38 |
|
| It shouldn't touch this hint at all. It should use program-specified-location if it wants a certain placement, but I don't think it does because it's always 0,0. | 18:39 |
|
tsuna
| Can it harm to Ctrl-C git-gc? | 18:45 |
|
robin
| it *should* not | 18:51 |
|
| if there is any damage it is a bug | 18:51 |
|
workkevin
| I'm sure tsuna finds that very comforting. ;) | 18:56 |
|
robin
| <std/disclaimer> | 18:58 |
| → ACSpike[Work] joined | 19:02 |
|
ACSpike[Work]
| is there a quick howto for msysgit? | 19:03 |
|
tronical
| ACSpike[Work]: download gitme.exe from http://code.google.com/p/msysgit/ ; run; wait; put $installpath/bin into your PATH; sit back and enjoy the ride :) | 19:03 |
|
ACSpike[Work]
| so running in cmd.exe? or the included sh.exe? or rxvt.exe? | 19:04 |
|
| I've already got gitmed | 19:04 |
|
tronical
| ACSpike[Work]: it's a graphical installer, just click on it ;-) | 19:04 |
|
ACSpike[Work]
| right, I did | 19:04 |
|
| it installed | 19:05 |
|
tronical
| cool :) | 19:05 |
|
ACSpike[Work]
| then I came back the next week | 19:05 |
|
tronical
| if all worked fine you should be set to use git then :) | 19:05 |
|
ACSpike[Work]
| right | 19:05 |
|
| when I had tried to use git on windows in the past I ran into a number of troubles with cmd.exe not being bash | 19:05 |
|
cortana
| i run into these problems whenever i use windows :) | 19:06 |
|
tronical
| msysgit works fine for me in cmd.exe | 19:06 |
| ← bentob0x left | 19:06 |
|
ACSpike[Work]
| ok, thanks | 19:07 |
| → bentob0x joined | 19:09 |
| → nud joined | 19:10 |
| ← pygi left | 19:10 |
|
workkevin
| Is there a central location for the windows porting effort? I'd like to find out about what they are doing. | 19:13 |
| ← KirinDave left | 19:15 |
|
vmiklos
| http://code.google.com/p/msysgit/? | 19:16 |
|
MadCoder
| gitster: I just sent my patchset | 19:19 |
|
| for whatever reason git-send-email didn't number them, there is 7 of them | 19:19 |
| → yorgen1512 joined | 19:19 |
|
MadCoder
| crap I sent a wrong one | 19:20 |
|
ACSpike[Work]
| cworth once told me how to amend the author name in the last commit but I can't remember now. I've set the name and email with git config now. | 19:27 |
|
thiago_home
| tronical: I came up with an "evil" plan to convert our infrastructure from p4 to git, little by little, from the ends. When people realise, we're using git :-) | 19:27 |
|
tronical
| thiago_home: add it to the current git transition plan on the wiki! | 19:28 |
|
MadCoder
| ACSpike[Work]: git commit --amend | 19:28 |
|
pickscrape
| Random idea: would it not be possible to create something like 'git-svk' which would be like git-svn but would be able to follow svk merges and therefore provide a more complete clone than git-svn does? | 19:28 |
|
| (provided of course that the upstream repo's branches are managed by svk) | 19:28 |
|
ACSpike[Work]
| MadCoder: that's what I'm doing, but git log doesn't show the new name. | 19:28 |
|
madduck
| weird. core.worktree's description says: "The value will not be used in combination with repositories found automatically in a .git directory (i.e. $GIT_DIR is not set)" but actually it seems as if it is being used. | 19:31 |
|
| which is good for my case, but I wonder what's wrong: docs or implementation... | 19:31 |
|
| or whether i am misunderstanding something. | 19:31 |
|
jaalto
| This is real basic, I know, but how Do I get a remote branch to current repository? (the repo is empty initially) | 19:32 |
|
| http | 19:32 |
|
Beket_
| git checkout --track -b <local name> origin/<remote name> ? | 19:34 |
|
| This command creates a local branch based on the remote branch and switches your working copy to that branch | 19:35 |
|
jaalto
| Beket_, that that --track, thanks | 19:35 |
|
Beket_
| your welcome jaalto | 19:36 |
|
jaalto
| Beket_, Erm where do I put that htpp://..... URL in that command? | 19:38 |
|
| Beket_, I explained porly: I want to fetch from http:// server a specific branch to local repo | 19:39 |
| → strangy joined | 19:40 |
|
ACSpike[Work]
| tronical: have you had success cloning over ssh? | 19:42 |
| → flo joined | 19:43 |
|
flo
| Hi! My gitweb just shows "403 Forbidden - No project found." Any suggestions ? | 19:43 |
|
tronical
| ACSpike[Work]: haven't tried, only used git protocol sofar | 19:43 |
|
Beket_
| jaalto, I don't know that, I am a noob too :) | 19:43 |
|
jaalto
| Beket_, It must be git-fetch, but I get error "Cannot get the repository state from ..." | 19:44 |
|
| flo: I would check the file system permissions | 19:45 |
|
| flo: http://www.kernel.org/pub/software/scm/git/docs/everyday.html | 19:46 |
|
flo
| jaalto: i set the whole repodir to 777 to make sure but that doesn't help | 19:46 |
|
jaalto
| flo: I understand 777 for testing, but you can see them permissions under text "CVS-style shared repository." | 19:47 |
| ← d0k left | 19:48 |
|
csc`
| can you push over ftp? | 19:49 |
|
tsuna
| Hmm git-grep keeps annoying me because I often do VPATH builds (that is, project/ is the source tree and project/_build is my build tree and my cwd) and `git-grep foo ..' (or `-- ..') won't work ("fatal: git-grep: cannot generate relative filenames containing '..'"), any suggestion? | 19:49 |
|
jaalto
| Beket_, I figured the error. I forgot to run "git update-server-info" at REMOTE | 19:50 |
|
Beket_
| oh thanks jaalto for the feedback | 19:51 |
|
jaalto
| For the record: To fetch from remote, simply: git fetch <URL> <branch> | 19:51 |
| ← strangy left | 19:52 |
| elmarco|gym → elmarco | 19:52 |
| → strangy joined | 19:52 |
|
flo
| jaalto: ok but that that can't be my problem right ? I mean it should work with 77... | 19:52 |
|
jaalto
| flo: Correct. Can you configure Apache to just popint to that Git share and try to generate the index listing? I would rules out the obvious reasons first | 19:58 |
|
| point | 19:58 |
|
ACSpike[Work]
| tronical: I'm struggling. trying to see if ssh will work from inside of rxvt.exe but I'm not getting that to work either | 19:59 |
| ← strangy left | 20:03 |
| ← ACSpike[Work] left | 20:04 |
| → KirinDave joined | 20:05 |
| ← Lash| left | 20:07 |
|
amfwrk
| I have a bunch of WIP commits, if I want them to look like a single commit pushed upstream (to svn via git-svn) do I need to git-reset --soft HEAD^^^ or how ever many commits I made then recommit, then push? | 20:09 |
| → ACSpike[Work] joined | 20:09 |
| → mnemoc joined | 20:11 |
|
gitster
| The easiest way to create a single commit out of them would be "git checkout -b temp HEAD^^^" (or however many) then "git merge --squash your-original-branch" followed by "git commit". Another possibility is "git rebase -i" and mark them for "squash", which is in 1.5.3 and later. | 20:15 |
|
flo
| jaalto: hmm no i can't right now - any other way to check ? | 20:16 |
|
ACSpike[Work]
| oh, running from the little msys.bat in the root works remarkably better | 20:16 |
|
jaalto
| flo: Unfortunately it's late here, so I must leave. I hope you get further answers | 20:18 |
|
| jaalto goes sleeping | 20:18 |
|
amfwrk
| gitster: Neat, thanks! | 20:18 |
|
| jaalto away at sleep | 20:18 |
|
flo
| jaalto: ok thanks! | 20:18 |
| ← nud left | 20:18 |
|
flo
| So... anyone else here who can assist me with setting up gitweb ? | 20:18 |
|
ACSpike[Work]
| tronical: yay, it works if the remote server is correctly configured. now if only I could remember what I had changed on the working box | 20:19 |
| → nud joined | 20:20 |
| ← nikodemus` left | 20:26 |
| → sgrimm joined | 20:27 |
| ← elmex left | 20:32 |
| → elmex joined | 20:32 |
| ← elmex left | 20:38 |
| elmarco → elmarco|away | 20:39 |
|
xkr47
| hi | 20:39 |
| ← bentob0x left | 20:39 |
| → bentob0x joined | 20:40 |
| → elmex joined | 20:40 |
|
vmiklos
| hm | 20:43 |
| ← bentob0x left | 20:44 |
|
vmiklos
| say i have foo.c, bar.c and baz.c added to index. foo.c and bar.c was already tracked, baz.c is a new file | 20:45 |
|
| is it possible to undo 'git add baz.c' without unstaging foo.c and bar.c? | 20:45 |
|
gitster
| "git reset HEAD -- baz.c"? | 20:45 |
|
hliusv561_
| vmiklos: 'git rm --cached baz.c' | 20:45 |
|
gitster
| Reads "reset my index entry at baz.c". | 20:45 |
|
vmiklos
| let's try with -- :) | 20:46 |
| → bentob0x joined | 20:46 |
|
vmiklos
| fatal: pathspec 'baz.c' did not match any files | 20:47 |
|
| for git rm --cached | 20:47 |
|
| gitster git status still says 'new file baz.c' | 20:47 |
|
gitster
| is baz.c a new file? | 20:47 |
|
vmiklos
| yes | 20:47 |
|
gitster
| Then what hliusv561_ gave you plus -- should work. | 20:47 |
|
vmiklos
| here is the actual problem: | 20:48 |
|
| # new file: po/pootle/da/jToolkit.po | 20:48 |
|
| from git status | 20:48 |
|
| git rm --cached -- po/pootle/da/jToolkit.po | 20:48 |
|
| fatal: pathspec 'po/po/pootle/da/jToolkit.po' did not match any files | 20:48 |
|
| doh | 20:48 |
|
| sorry, pebkac:) | 20:49 |
|
| i was not in the repo root | 20:49 |
| → QuercusMax joined | 20:49 |
|
xkr47
| :) | 20:49 |
|
vmiklos
| git rm -f --cached worked fine | 20:50 |
|
gitster
| why did you even need "-f"? | 20:50 |
|
vmiklos
| git rm --cached -- pootle/da/jToolkit.po | 20:51 |
|
| error: 'po/pootle/da/jToolkit.po' has changes staged in the index (hint: try -f) | 20:51 |
|
| i think because it was a new file | 20:51 |
|
gitster
| It was because you had modifications since the staged version, which makes sense. | 20:51 |
|
vmiklos
| hm, possible :) | 20:52 |
| ← bentob0x left | 20:53 |
|
xkr47
| hmm, if that was the case I think the error message is slighly misleading | 20:53 |
|
gitster
| error: 'foo' has staged content different from both the file and the HEAD | 20:54 |
|
| (use -f to force removal) | 20:54 |
|
vmiklos
| hm yes | 20:55 |
|
| s/possible/that was the situation/ | 20:55 |
|
MadCoder
| oh about this "root" issue, why does git commit ../foo refuses to work ? | 20:58 |
|
| it's pretty irritating actually | 20:58 |
|
| OTOH, git diff and other commands works fine with ../ | 20:58 |
|
gitster
| heh, don't make partial commits. | 20:59 |
|
| patches welcome. | 20:59 |
|
MadCoder
| gitster: well It's a usual thing I do, when I'm twidling with a "subsystem" of our work repo | 21:00 |
|
| but that I have to also add some macro or interface in our core libraries | 21:00 |
|
| I usually want to bind them all in the same commit, and I'm in the subsystem directory and want to: | 21:00 |
|
| git commit . ../path/to/the/lib/file.c | 21:00 |
|
| gitster: actually it's unclear to me wich component of git refuses the .. | 21:01 |
|
| but well, I'm not iritated enough about that yet to be bothered to trace it :) | 21:01 |
|
| it was just vmiklos remarks about not being at the root of his repository that made me remember about it | 21:02 |
| ← rtmfd_icbm left | 21:02 |
|
gitster
| as "extra" and "sb->len" are size_t, I do not think the check in strbuf_grow() is all that portable... | 21:02 |
|
| oops, wrong buffer. | 21:03 |
|
| heh, but that's ok, I am talking with you anyway about your patch ;-) | 21:03 |
|
| ACSpike[Work] does a little dance after completing his first two clones with msysgit | 21:04 |
|
MadCoder
| hehe | 21:05 |
|
gitster
| I hate this "= STRBUF_INIT" thing, though. | 21:06 |
|
MadCoder
| well, actually it's not really needed as a memset works for it. It's nice if we change the interface some day, for the static variable in modules | 21:06 |
|
| maybe I should use that less in functions, and use the _init() function instead | 21:07 |
| → bfields joined | 21:08 |
| ← lcapitulino left | 21:09 |
| → etnt joined | 21:09 |
| ← QuercusMax left | 21:09 |
| ← etnt left | 21:09 |
| ← robfitz_ left | 21:10 |
| ← janm left | 21:10 |
|
hliusv561_
| MadCoder: AFAIK, You can't add three variables and just check overflow once, unless one of them is fixed to 1, and then you need to use '<=' instead of '<'. | 21:11 |
| ← ACSpike[Work] left | 21:11 |
|
workkevin
| Is there an easy way to find your repository root? | 21:12 |
|
MadCoder
| hliusv561_: the point is, one of the "variables' is fixed to 1 | 21:12 |
|
| and maybe indeed I should have used <= | 21:12 |
|
| the actual test is: if (sb->len + extra + 1 < sb->len) | 21:13 |
|
| :) | 21:13 |
|
hliusv561_
| MadCoder: And the point was that equality in that case also means overflow. | 21:13 |
|
robin
| lots of talk about gc. must try it someday | 21:13 |
|
MadCoder
| hliusv561_: and I agree like said | 21:13 |
| → Pistahh joined | 21:13 |
|
gitster
| robin: do you like the two-patch series from today? | 21:14 |
|
hliusv561_
| MadCoder: If extra is 2^32 - 1 (or 2^64-1 for 64-bit), the condition will be false, but overflow will occur in that calculation... | 21:15 |
| → robfitz joined | 21:15 |
|
MadCoder
| hliusv561_: you're a bit blind right ? | 21:15 |
|
| 23:12 MadCoder | and maybe indeed I should have used <= | 21:15 |
|
| 23:13 MadCoder | hliusv561_: and I agree like said | 21:15 |
|
robin
| gitster: the auto-gc | 21:15 |
|
MadCoder
| should I say it a third time ? :) | 21:15 |
|
robin
| I have looked yer | 21:16 |
|
| generally, I think git should do its own homework | 21:16 |
| → QuercusMax joined | 21:17 |
|
MadCoder
| gitster: as a matter of a fact, the thing that is the less portable is the va_copy, I think there is none on AIX e.g. | 21:17 |
|
| though there is compatibility code for that around | 21:17 |
|
robin
| i.e. I like the idea at least | 21:18 |
|
MadCoder
| (and IIRC if gcc is used, it provides -- or at least it did -- a __va_copy on those platforms) | 21:18 |
|
robin
| MadCoder: the result of signed integer overflows are undefined.... | 21:19 |
|
MadCoder
| last time I checked, size_t was unsigned | 21:19 |
|
robin
| then it's fine as long as the others are unsigned too | 21:21 |
|
| or.. | 21:21 |
|
| it's ok | 21:21 |
|
MadCoder
| or git won't work on some arcane DSP or imaginary architecture nobody cares about ? :) | 21:22 |
|
| *cough* | 21:22 |
|
robin
| or is it.. if the result is undefined no comparison makes sense | 21:22 |
|
| :) | 21:23 |
| → Eludias__ joined | 21:23 |
|
MadCoder
| I could also argue that sb->len cannot be ULONG_MAX as it's odd | 21:24 |
|
| and that the allocation strategy cannot reach taht number :P | 21:24 |
|
| but well | 21:24 |
|
gitster
| ah, I missted that size_t (somehow I read it as ssize_t), my fault. | 21:24 |
|
MadCoder
| size1 + size2 + 1 >= size1 is the proper test | 21:24 |
|
| instead of my > and all is fine | 21:25 |
|
hliusv561_
| MadCoder: And aren't extensible arrays usually grown exponentially so they have O(N) amortized running time? | 21:25 |
| ← elmex left | 21:26 |
| → bronson joined | 21:26 |
|
MadCoder
| hliusv561_: I was just making silly arguments, you're not really supposed to answer to them ;) | 21:26 |
| → elmex joined | 21:26 |
|
MadCoder
| hmm gitster: there is a small issue in strbuf.c now that I reread the code again | 21:28 |
|
| (it's despairing sometimes to read 200 lines of code and always come with tiny little holes ...) | 21:28 |
|
| gitster: strbuf_reset should set ->eof to 0 | 21:28 |
|
| it breaks read_line not to do so, at least on the paper, no in the reality because we never reuse a strbuf on multiple files with this API (yet) | 21:29 |
| ← sgrimm left | 21:29 |
| → rtmfd_icbm joined | 21:33 |
| → dirak1 joined | 21:35 |
|
HackyKid
| isnt it a bit weird storing an eof flag in something thats supposed to be a string? or is it just me :O | 21:36 |
|
MadCoder
| HackyKid: well, I'd like to get rid of it as well, it's not pretty, and it's there because code using read_line are sloppy in many ways (IMHO) | 21:38 |
| ← lichtblau left | 21:38 |
|
MadCoder
| but I've not wrapped my mind about it yet, so I've left the current logic untouched | 21:38 |
|
HackyKid
| ah, i see | 21:39 |
| ← jcollie left | 21:40 |
|
HackyKid
| should be a seperate patch in any case i think, don't change too much at once if you dont have too :-) | 21:40 |
|
MadCoder
| that's kind of the point | 21:40 |
|
HackyKid
| hmm | 21:41 |
|
MadCoder
| the real reason it not really the eof thing, but that read_line tries to work with strbufs the way fgets works with buffers | 21:41 |
|
| but not exactly like it, and it has some shortcomings | 21:41 |
|
| e.g. it always drop the terminator we are looking for | 21:41 |
|
| sometimes we want to, but I've seen at least one place where it does not makese sense, and we want to keep the final '\n' (like fgets does) | 21:42 |
|
| and it's way too cumbersome to add it again | 21:42 |
|
HackyKid
| sounds tricky to get it all right.... | 21:43 |
|
MadCoder
| not really, it just needs to look at git's code a bit more and understand the need | 21:43 |
|
| once you know the need, the correct API is often pretty obvious | 21:43 |
| → sgrimm joined | 21:44 |
|
HackyKid
| true | 21:44 |
|
MadCoder
| and also it's not critical IMHO. current strbufs have IMHO grave flaws (and like Junios said it wasn't really "designed" after all) | 21:44 |
|
| and that's the issue I try to address | 21:44 |
|
| the read_line "shortcomings" are rather cosmetical and taste issues | 21:45 |
|
| not really the same | 21:45 |
|
HackyKid
| yeah | 21:46 |
|
MadCoder
| damn, I have to buy gerit pape a beer at some point | 21:47 |
|
| he uploads new git versions to debian less than 24 hours after it's released | 21:47 |
|
robin
| QuercusMax: ping | 21:47 |
| ← Beket_ left | 21:48 |
| → doublec joined | 21:49 |
| ← dirak1 left | 21:50 |
| ← dorileo left | 21:51 |
|
KiBi
| Gerrit, even. | 21:52 |
|
hliusv561_
| Concerning pack merging, where are tags sorted in packs? Mixed with commits? | 21:55 |
| ← Kenjin left | 21:57 |
|
gitster
| Roughly speaking, wherever "rev-list --objects" output gives them. | 22:00 |
|
hliusv561_
| Ah, they go into extreme end. | 22:02 |
|
flo
| So far i've been using svn to keep my code in sync between my main machine and my notebook. However since branches are local in git - if i start a new branch on one machine it will not be available on the second right ? (Even so i'm syncing using a shared repo) | 22:03 |
|
hliusv561_
| flo: You need push the branch into the shared repo and pull it on other. This does not help with reflogs through. | 22:04 |
| ← fidodido_ left | 22:04 |
| → pygi joined | 22:04 |
|
hliusv561_
| flo: s/pull/fetch/. | 22:05 |
| → nashdj joined | 22:05 |
|
flo
| hliusv561_: Hmm so i have to keep track of branches all the time ? There is no way to always push all branches and always pull all branches ? | 22:07 |
| ← amfwrk left | 22:07 |
|
hliusv561_
| flo: Git 1.5 and newer supports wildcards in refspecs. Also, push has option '--all'. | 22:08 |
|
flo
| hliusv561_: ok i will try that.. thanks | 22:08 |
| ← aroben left | 22:09 |
| → achiang joined | 22:15 |
| ← Eludias__ left | 22:15 |
| ← Eludias left | 22:15 |
| ← Oejet left | 22:16 |
|
achiang
| if i am working in a branch foo and make changes; create a new branch (git branch bar origin); and switch to that branch (git checkout bar), why do i see changes from foo? | 22:16 |
|
| i would have expected that bar would match origin | 22:17 |
|
gitster
| When you switch branches, you are taking your local changes with you. | 22:17 |
|
HackyKid
| why does my git-gui look better in windows than in linux :O | 22:17 |
|
gitster
| The alternative you are suggesting is to effectively "lose" your local changes that are not committed to your current branch. | 22:18 |
|
flo
| hliusv561_: Ok seems i can push branches that way to the server - but if i pull from the server the branch will be a remote branch (origin/branchname) - Can i checkout a remote branch, work on it, commit it and push it to the server again ? | 22:18 |
|
gitster
| HackyKid: probably because you are too used to Windows. | 22:18 |
|
HackyKid
| hmm, maybe... thats part of it | 22:19 |
| → DrFrasierCrane joined | 22:19 |
|
achiang
| gitster: ok, but what if my changes in foo are temporary and i don't really want to commit them before playing around in a different branch? | 22:19 |
|
DrFrasierCrane
| how do I remove a file from commit ? | 22:19 |
| ← gnilor left | 22:19 |
| ← bdiego left | 22:19 |
|
achiang
| gitster: for example, adding debug printk statements, etc | 22:19 |
|
gitster
| A short answer: don't. Another answer: stash it away (see git-stash(1)). | 22:19 |
| → zmk joined | 22:19 |
|
hliusv561_
| flo: No, remote branches don't work like locals. 'git checkout' has -b option to create local branch and check it out. Also see option --track. | 22:20 |
|
HackyKid
| i actually set the win98(or something) theme in linux, but git-gui doesnt listen :-) | 22:20 |
|
gitster
| Yet another answer: if you do not need that temporary change, "reset --hard" away after or before switching branches. | 22:20 |
|
| It all depends on what you want to do, and there are suitable tools to allow you do so. Learn to use them ;-) | 22:21 |
|
achiang
| gitster: ah, cool! that is exactly what i want... wonder why that's not called out more prominently on http://www.kernel.org/pub/software/scm/git/docs/tutorial.html | 22:21 |
|
| gitster: i do notice it here: http://www.kernel.org/pub/software/scm/git/docs/user-manual.html | 22:21 |
|
| gitster: yep, i don't mind reading docs/man pages, but i didn't even know git-stash existed. thanks | 22:22 |
|
| fwiw, i don't think "temporarily setting aside work in progress" should really fall into the "Fixing Mistakes" category | 22:22 |
|
| but thanks for the help | 22:23 |
|
HackyKid
| argh! the font list popupin git-gui is too large to fit on the screen, and there is no way to scroll it | 22:23 |
|
achiang
| ah, nuts. debian etch (4.0) only has git 1.4.4.4. :( | 22:24 |
|
HackyKid
| ok.... this is weird, the windows version *does* have arrows at top/bottom to scroll it.... | 22:24 |
| ← bfields left | 22:24 |
| ← DrFrasierCrane left | 22:24 |
|
HackyKid
| but in linux i can only select fonts upto 'g' as starting letter :-( | 22:25 |
|
gitster
| annoying, isn't it? Bug spearce. | 22:26 |
| ← nud left | 22:26 |
|
hliusv561_
| HackyKid: And using arrow keys probably results selected entry going out of screen? :-| | 22:26 |
|
cortana
| achiang: backports.org | 22:26 |
|
| you can get 1.5.2 from there :) | 22:26 |
| → agoode joined | 22:26 |
|
HackyKid
| arrow keys do nothing | 22:27 |
|
cortana
| in farct, according to http://packages.debian.org/git-core you can get 1.5.2.4 | 22:27 |
|
hliusv561_
| cortana: Sadly 1.5.2.4 does not have 'stash' or 'rebase -i'. | 22:27 |
|
HackyKid
| scroll wheels close the popup | 22:27 |
|
| but its known bug i hear :-p | 22:28 |
|
cortana
| ah, though it should be easy to build the package of 1.5.3 from unstable on etch | 22:28 |
|
achiang
| cortana: ah, thanks for the backports pointer. installing it now, thanks. | 22:29 |
|
| achiang discovers what hliusv561_ points out | 22:30 |
|
hliusv561_
| HackyKid: I got arrow keys to do something. I can't reproduce it through. And yes, the selection goes off the screen. BTW: I got list only up to 'd'. | 22:31 |
|
MadCoder
| cortana: as soon as 1.5.3 is in testing I'll do a backport | 22:32 |
|
| but I can't do that earlier | 22:32 |
|
cortana
| MadCoder: sweet | 22:32 |
|
| fair enough | 22:32 |
|
MadCoder
| and it seems there is issues with gcc on hppa again so I'm not sure when it will be | 22:32 |
|
cortana
| ugh | 22:32 |
| ← elmex left | 22:32 |
|
MadCoder
| http://buildd.debian.org/~jeroen/status/package.php?p=git-core&suite=unstable | 22:32 |
|
| it happened before, I suppose building with -O0 will do the trick | 22:33 |
| ← cmarcelo left | 22:34 |
|
cortana
| hm another buildd status page :) | 22:34 |
| → lichtblau joined | 22:35 |
|
MadCoder
| that'sthe sole useful one :P | 22:35 |
|
cortana
| that makes three i have bookmarked now :D | 22:35 |
|
hliusv561_
| HackyKid: I figured out how to reproduce that. Pick some long font name (so the combobox will be wide). Then open the list and drag to combobox. Now up and down arrow keys work. | 22:35 |
|
MadCoder
| cortana: you need 2 | 22:36 |
|
| this one and experimental.ftbfs.de/new/ for the bpo, volatile and experimental networks | 22:36 |
|
cortana
| ah nice | 22:36 |
|
MadCoder
| the latter is the same as the former, it just that it deals with other sets | 22:36 |
|
cortana
| yup | 22:36 |
|
hliusv561_
| HackyKid: Using that trick, I managed to select font name beginning with 'v' from the font list. | 22:39 |
|
MadCoder
| or you can close git-gui, edit its config file and use xfontsel and use vi | 22:40 |
|
csc`
| so can git push over ftp :s? | 22:41 |
|
HackyKid
| ah, arrows work now yeah, not too usefull when you cant see what you select though :-) | 22:41 |
| ← zmk left | 22:44 |
| → aroben joined | 22:45 |
| → jasam joined | 22:49 |
| ← devogon left | 22:51 |
| ← ferdy left | 22:55 |
| ← p4tux left | 22:56 |
|
hliusv561_
| HackyKid: I think the problem is in TK libraries, not in Git-gui. | 23:12 |
| ← _aleph left | 23:14 |
| ← kblin left | 23:14 |
| → kblin joined | 23:15 |
| ← kblin left | 23:15 |
| → kblin joined | 23:15 |
| ← kblin left | 23:15 |
| → kblin joined | 23:15 |
| ← kblin left | 23:16 |
| ← orospakr left | 23:16 |
| → dash__ joined | 23:16 |
| → cdcarter joined | 23:17 |
| ← cdcarter left | 23:17 |
| ← flo left | 23:17 |
| ← lyakh left | 23:20 |
| → Nemoish joined | 23:26 |
| ← Nemoish left | 23:27 |
| ← dash_ left | 23:28 |
|
HackyKid
| hliusv561_: yeah, looks that way | 23:29 |
|
| especially because the same script *does* allow scrolling on windows :O | 23:29 |
| ← BadQuanta left | 23:37 |
| → BadQuanta joined | 23:37 |
| → bdiego joined | 23:37 |
| → reelman_ joined | 23:39 |
| ← achiang left | 23:39 |
| ← reelman_ left | 23:39 |
| → reelman joined | 23:40 |
|
gitster
| I thought that was known and you guys were talking about a workaround... | 23:43 |
| ← robin left | 23:44 |
|
reelman
| hi, if i clone a git repo, the branches dont get cloned... how do i clone with all the branches? | 23:44 |
|
gitster
| what makes you think branches are not cloned? | 23:44 |
|
| (hint "git branch -a") | 23:44 |
| ← krh left | 23:47 |
|
reelman
| so when i check out a branch with origin/branchname what happens? | 23:47 |
|
| like... | 23:47 |
|
| am little lost! | 23:47 |
|
| its says am not on a local branch! | 23:47 |
|
hliusv561_
| reelman: 'git checkout --track -b branchname origin/branchname' probably (if you intend to commit on top of it)... | 23:48 |
|
reelman
| cool.. so if i make changes to this branchname branch and commit and later push | 23:50 |
|
| the remote branch will get updated? | 23:50 |
|
hliusv561_
| reelman: Yes. | 23:50 |
|
reelman
| hliusv561_: OK.. thanks.. i will try this! | 23:50 |
|
hliusv561_
| reelman: The '--track' sets defaults such that 'git pull' will try to merge origin/branchname (after fetching it from remote repo). | 23:52 |
|
reelman
| if i do this , then master branch wont get pulled? | 23:52 |
|
| when i do git pull? | 23:52 |
|
hliusv561_
| reelman: Yes. | 23:53 |
|
| reelman: If you really want to merge origin/master for some odd reason, you can first fetch and then 'git merge origin/master', or 'git pull origin master' (or what the exact syntax was). | 23:54 |
|
reelman
| so is it possible to track more than one branch? | 23:54 |
| → FunkeeMonk joined | 23:54 |
|
reelman
| ok | 23:55 |
|
| i think i get it | 23:55 |
|
| hliusv561_ doesn't use 'git pull' much. He likes more to use 'git fetch' first and then 'git merge'. | 23:56 |
| ← Yuuhi left | 23:56 |
| → standel joined | 23:56 |
| ← standel left | 23:56 |