IRCloggy #git 2007-09-05

Logs Search ←Prev date Next date→ Channels Documentation

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

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 themselves00: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 left00: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 now00:11
mayz joined00:13
mayz left00:13
FunkeeMonk left00:17
jcollie joined00:23
sinequanon left00:27
kanru left00:28
gitte says good night.00:29
gitte left00:30
agoode left00:30
devogon left00:44
flo joined01:07
yorgen1512 left01:11
rodserling__ left01:17
BadQuanta joined01:21
rlb3 left01:21
puzzles left01:25
puzzels joined01:25
DrNick joined01:26
KirinDave left01:27
puzzelspuzzles01:27
rlb3 joined01: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 later01: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 -r01:43
sgrimm left01:45
jasam gitster, I sent another try with a function for updating refs, generalizing the others01:46
flo jasam: great, thanks!01:47
jasam flo, :-) they also will remain unchanged, to have always a copy of the original pulled branch01:48
QuercusMax left01:50
theCarpenter joined01:57
theCarpenterDragon4501:57
lizac left01:58
Yuvi left02: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 handle02: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_ left02:24
dduncan joined02:26
tongueroo left02:27
raeLLL joined02:29
QuercusMax joined02:31
QuercusMax left02:34
whee left02:41
Dragon45 is git-daemon a requisite for git-web?02:43
tcoppi no02:44
BadQuanta Ok. I'm testing moving my project to git.. wish me luck.02:55
HackyKid left02: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 left02:59
flo joined03:01
jasam left03:02
Tv BadQuanta: yes03:02
BadQuanta Ok. just checking.03:03
aroben left03:09
madewokherd left03:17
tongueroo joined03:18
KirinDave joined03:18
fidodido hey guys03:21
git rocks03:21
like amazing03:21
really imrpoved the way i work03:21
and can feel it03:21
rlb3 left03:21
fidodido how do i ignore some files during a git merge03:21
is there like a .gitmergefile03:21
rlb3 joined03:22
fidodido or how to ignore binary files during a merge03:22
DrNick2 joined03:23
flo left03:23
fidodido how do we ignore files from git merge03:23
DrNick left03:25
DrNick2DrNick03:25
FauxFaux joined03:26
aroben joined03:28
Randal tries to figure out what "ignore files during a merge" might mean03: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 again03: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 us03:30
Randal it's gonna require some context or motivation.03:30
context wheredoes it say tht03:30
Randal if you have a commit A and another commit B, you have to resolve every single file in both03:31
it doesn't make sense any other way.03:31
context wow, forget i even asked a question03:31
Randal I'm talking to fidodido03:31
not you03:31
fhobia joined03:31
Randal ... <fidodido> how do i ignore some files during a git merge03:32
context oh ok. now i see03:32
Randal answering that03:32
trying to anyway03:32
but he's now apparently gone03:32
so I'm just wasting my breath. :)03:32
context randal: srry. ;)03:32
Randal heh no prob03:32
I do that sometimes too03:32
hard to tell which way you're facing in virtual space.03:33
FauxFaux peers at git-svnmirror.03:33
cmarcelo left03:33
gitster often people mean "keep other person's version because what I produce is crap".03:33
fidodido randall03:33
Randal: i ve a few branches03:33
master03:33
slave03:33
and one more03:34
i want to pull some changes from master to slave03:34
but i dont want to pull all the changes03:34
i want to ignore some files03:34
so i jus want some code from the master03:34
gitster Sorry, you are not thinking git yet.03:34
Randal yeah - not thinking git03:34
fidodido but i want to ignore binary03:34
Randal that's why I was confused too03:34
fidodido and some other files03:34
gitster That's _not_ a merge.03:34
fidodido i do03:34
i do git checkout slave03:34
git merge master03:34
and i want to ignore certain .html files03:35
Randal do you understand what a "merge" is for, fidodido?03:35
fidodido during merge03: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 ok03:35
Randal at least not the git meaning of merge03:35
fidodido i want to merge the changes from the other branch03:35
chowmeined i dont understand.. how do i just fetch a remote branch and then use it?.. i cant find it anywhere03:35
fidodido ok03:35
so how do i pull some changes from a part branch03:35
master03:35
to slave03:35
mebe i dont need to do merge03:36
is there something else03:36
i can do03:36
chowmeined i fetched it with git fetch git://location/git/item.git core03:36
fidodido this is imperative03: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 becuase03:36
Randal in other words, a "better" version than either of the parent versions.03:36
fidodido these are 2 projects03:36
gitster one touches file A B, another touches C (binary), and the other one touches A and D,03:36
fidodido master and slave03:36
and each share code03:36
Randal you want subprojects03:36
fidodido oh ok03:36
Randal not trees.03:36
fidodido how do i do that03:36
gitster you _COULD_ say "I want to cherry-pick the first and the third one".03:36
Randal (I think)03:36
fidodido randal03:36
aroben_ joined03:36
fidodido i think u got it03:36
bulls ey03:36
e03:36
:)03:36
so how to do subprojects03:37
in git03:37
vdv left03: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 anywhere03:38
what do i do to just fetch a branch from a remote repo?03:38
aeruder git branch -a03:38
yorgen1512 joined03:38
aeruder ^^ chowmeined03:38
Randal it sounds like he has trees with independent histories03:39
that's what subprojects are for03:39
fidodido Randal: the current version of master03:39
Sho_ left03:39
fidodido and current version of slave03:39
brance03:39
are 2 projects03:39
that are live03:39
chowmeined aeruder: it still only lists once branch.. but i fetched one03:39
fidodido but they share code03:39
but not all the code03:39
soem files are different03:39
for eg03:39
names of the proj03:39
logs03:39
yorgen1512 left03:39
fidodido they are different03:39
gitster chowmeined: you earlier said "I fetched". How?03:39
fidodido but the backend03: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 backlog03:39
fidodido keeps improving03:39
aeruder because it03:39
gets03:39
fidodido oops03:39
aeruder so annoying :)03:40
chowmeined gitster: git fetch location:/git/test.git03:40
fidodido when i clone a repo03:40
chowmeined and also.. git fetch location:/git/test.git somebranch03:40
fidodido i do git clone /work/git/code03:40
and now i go to /tmp/code03:40
it only has master branch03:40
hw do i get all the branches03:40
and exact copy of the repo03:40
aeruder fidodido: git branch -a03:40
fidodido shud i jus copy the file in unix03:40
ok03:40
aeruder they're all there03: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 -a03:41
commentwall03:41
edviral03:41
* master03:41
pendingreg03:41
server03:41
today03:41
this wat i got03: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 it03: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 unchanged03: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 yes03: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 left03:45
gitster That's also the SOP for one-shot merge from downstream.03:45
chowmeined SOP?03:45
gitster standard-operating-procedure03:45
chowmeined standard operating procedure?03:45
ok03:45
thats what i thought03:45
gitster Having said that.03:45
You could "git fetch somewhere:somerepo.git somebranch" and then03: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 ok03: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 branch03: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 branch03: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 then03:51
chowmeined oh yea, thats what i was looking for03:51
gitster after setting that up once, you can: "git pull somename thatbranch"03:51
chowmeined excellent, thanks03: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 up03:53
aroben left03: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 left03:55
gitster what version of git are you using?03:55
chowmeined im using: git version 1.5.2.103: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 possibly03: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 left03:57
chowmeined they do.. when they try to git pull to get updates03: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 separate04: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), then04: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_ left04:01
chowmeined they get that error when they try to merge origin into master04: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 yes04: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 left04:04
chowmeined hmm, well i wasnt there when they were doing all this.. so they might have been running other commands04: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 changes04:06
Dragon45 is anyone logging these IRC chats and posting them somewhere online04:06
there's some useful info here :X04:06
gitster see /topic04:06
orospakr joined04:06
Dragon45 :P04:07
ty04:07
chowmeined yea.. gitster is like a fountain of knowledge04:07
Dragon45 i must wire this channel into my veins04:07
btw i started using git today to manage my class notes04:08
since classes started today :X04:08
chowmeined ive been using git for managing source code.. but i also want to use it to manage config files under /etc on servers04: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 anyway04: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 files04:11
git sees .odt as binary blobs right now04:11
gitster "git diff HEAD^ -- that.odp"?04:11
Dragon45 but there's relevant textual information in them04:11
.odt is the suffix for the open office file format04: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
oh04:12
danieldg iirc .odt is technically a .zip file with openoffice XML inside it04:12
Dragon45 really?04:12
hm :X04: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 interesting04:12
gitster Well, I should not say a "patch". You can do it without patching git at all.04:12
yorgen1512 joined04:13
danieldg so you'd have to get something that unzips and does diffs on the unzipped text04:13
gitster Yes, write a bit of script and point GIT_EXTERNAL_DIFF at it, and you are done.04:13
Insount joined04: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 k04:15
chowmeined hmm04:15
Dragon45 still seems like it could be included by default though04:16
chowmeined well you could write your notes in text files04:16
and do like docbook or latex for papers04:16
Dragon45 or maybe as part of a "useful git scripts" package or something *ponders*04:16
well, the thing is04:16
Randal odt files are essentially binaries04:16
do you want to do image-diff too?04:16
Dragon45 there's always the risk of random diagrams that are important04: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 do04:17
Dragon45 how's this for a monkey wrench, randall04:17
source of what?04:17
im involved tangentially with an open source game engine project04: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 :D04:17
Dragon45 they're looking (still) for a robust repo system capable of dealing with the "source" of very large files04:17
Randal or POD :)04:17
Dragon45 images, maps, etc04:17
Randal well - there won't be sensible "merges" of those... just allocating which version belongs in the final when there's a conflict04:18
Dragon45 mhm04:18
eMBee good afternoon04:19
Randal for some meaning of afternoon. :)04:19
Dragon45 midnight here ;)04:20
eMBee 4pm here04:20
eMBee imported his companies svn repository into git last night04:20
chowmeined it doesnt have to be just source04:20
gitster http://marc.info/?l=git&m=118820836315602&w=204:21
chowmeined id hope that it could handle pretty much any text files04: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 compiled04:22
eMBee is trying to tell gitk to reduce the revisions it shows to something managable04:22
gitster chowmeined: yes and no.04:23
chowmeined oh ok.. thanks04: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-D04:24
jcollie left04: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 left04:26
rkaway left04:26
chowmeined oh ok04:26
jackbravo left04:27
rkaway joined04: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 month04:30
and i have multiple days that i want04: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 hmm04:31
gitster goes back to real work...04:31
eMBee :-)04:31
that's exactly what i want though04:32
Randal waits for imaginary work to come to him04:32
Dragon45 thinks Randal should get a job if he wants work04:32
chowmeined wait so like04: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, yeah04:32
he's only like, you know, the chief maintainer. :)04:33
Dragon45 yeh04:33
Linus -> gitster04:33
Randal you can like, hear him at the mp3 at, like http://www.twit.tv/floss1904:33
Dragon45 that's pretty much the hierarchy04:33
Randal no. not linus04:33
Oh04:33
ok04:33
not mapping, but hierarchy04:33
Dragon45 indeed04:33
chowmeined splendid.. git is really excellent04:33
Dragon45 indeed it is :X04: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 flickr04: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._Schwartz04:37
O_o04:37
Randal and?04:37
Dragon45 same one?04:37
Randal tis me04:37
Dragon45 nothing just wondering04:38
ah k =]04:38
InsountInsount_away04:55
chowmeined wow04:58
famous people04:58
Dragon45 um yes05:00
^_^05:00
not me though :(05:00
maybe one day ;)05:00
sleepztime05:01
gnight all =]05:01
Dragon45 left05:03
aroben joined05:03
tongueroo left05:05
hap left05:10
hap joined05:12
KiBi left05:16
masonj_ joined05:18
johan-s joined05:23
EvanCarroll Randal: why did you /nick Randal and not merlyn?05:29
you used to be merlyn05: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, apparently05:29
gitster says /whois merlyn05: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 left05:33
bitbang joined05:33
devogon joined05:38
HackyKid joined05:44
aroben left05:53
aroben joined05:54
pdmef joined06:00
KirinDave joined06:06
orospakr left06:11
chowmeined DND?06:13
gitster dungeons and dragons?06:14
bdowning_ joined06:16
bdowning left06:16
KirinDave left06:21
Gin-geR joined06:22
bitbang left06:23
polyonymous_ left06:23
EnryAngr joined06: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 joined06:31
ricky left06:31
GyrosGeier joined06:32
EvanCarroll uh check it [check]out06:38
masonj_ left06:39
masonj_ joined06:39
EnryAngr EvanC: Please be more specific06:39
EvanCarroll Sure, something like `git checkout HEAD awesome.php` where HEAD is the branch or tag. or tree-ishness06:40
or crap.pl, if you're a newblar. ;)06:40
EnryAngr That's what I needed, thanks06:42
lol_h joined06:45
MrPloddy29` joined06:48
Oejet joined06:48
elmex joined06:51
MrPloddy29` left06:51
MrPloddy29` joined06: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 it06:54
git show --cached06:54
something similar iirc06:54
EnryAngr That looks about the same as git-log06:55
gitster "git show --stat", "git show --name-status", "git show --numstat", "git show --name-only", ... name your poison.06:55
doublec left06:56
ricky joined06:56
EnryAngr gitster: Cool, thanks06:58
MrPloddy29 left07:01
thiago_home EnryAngr: git what-changed07:10
pygi joined07:11
thiago_home erm, git whatchanged07:11
pygi left07:12
EnryAngr Hmm.. so many options...07:13
DrNick left07:14
thiago_home git whatchanged = git log --name-status -r -C -M (I think)07:14
fhobia left07:14
gitster not at all.07:15
lol_h left07: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 listing07:17
it's easier to type "whatchanged" than "log --name-status -r"07:17
especially since I get tab-completion for the former07: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 = checkout07:19
some people do "[alias] co = commit" though...07:19
thiago_home http://wincent.com/knowledge-base/Git_quickstart07: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 -R07:20
gitster Or not to configure your less at all. We give that to you by default.07:20
fhobia joined07:21
thiago_home not working here07:21
must $LESS not be set at all?07:21
gotta go...07:22
aroben left07:24
dduncan left07:27
EnryAngr left07:30
fhobia left07:39
zmk joined07: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/revert07:54
siprbaum git checkout HEAD file07:58
BadQuanta oh.. thanks .. I tried that but didn't have the file part.08:00
still learning :/08:02
felipe left08:05
keinfarbton joined08:11
thiago git-revert reverts a commit08:11
svn revert is not equivalent to git-revert08:12
keinfarbton is there any known commercial git+trac project-hoster?08:12
dkagedal left08:13
gitster how much are you willing to pay?08:17
keinfarbton svn+trac is about less 10$ per month08: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 joined08:20
fidodido git clone git://git.kernel.org/pub/scm/git/git.git08:20
i just got a folder08:20
with 25Mb08:20
how do i get the entire history08:20
every1 keeps talking about08:20
i did this for my project08:20
and jus got branch08:20
and lost my entire history08:20
when i deleted the older folder where i had the git history08:21
it is kinda stupid08: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 histroy08:22
by clone08:22
thiago by cloning08:22
clone = download the entire history08:22
fidodido it doesnt lol08:22
thiago unless you tell it otherwise, that is08:22
sure it does. What *exactly* did you run?08:23
fidodido git clone git://git.kernel.org/pub/scm/git/git.git08:23
du -sh08:23
25M .08:23
gitster: how to have subprojects in git08:23
so i can have 2 projects08:23
one is called08:23
P1 n08:23
thiago tries that08:23
fidodido and 2nd one is P208:23
thiago please stop flooding08:23
finish your sentences before you press Enter08:23
fidodido so how to share code between P1 And P2 and ignore a few files for sharing between P1 and P208:23
but they get tracked by git08:24
is it possible to do it08:24
?08:24
i was hoping to see if merge ignore file would do it08:24
but there is no merge ignore08:24
so the project is a variation of the same basic code08:24
thiago I've just tried that clone: it creates a 25 MB directory08:24
fidodido such as reddit08:24
it clone lipstick08:25
and so on08:25
each has the same code08:25
thiago would you mind stop flooding?!08:25
fidodido but the front end is different08:25
thiago: it doesnt hve the entire repo08: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 checkout08:25
does08:25
so what is the big deal? in git08:25
thiago no, it got the entire history.08:25
I have *just* done that here and it got the entire history08:26
all 11362 commits08:26
fidodido ok08:26
it has only one branch master08:26
thiago those are your local branches08:26
fidodido the source dir that i cloned from had like 13 branches08:26
thiago run git branch -r or git branch -a to see the rest08:26
fidodido git branch -a08:27
* master08:27
origin/HEAD08:27
origin/html08:27
origin/maint08:27
origin/man08:27
origin/master08:27
origin/next08:27
origin/pu08:27
origin/todo08:27
thiago08: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 sorry08:28
thiago08:28
no more08:28
thiago yes, no more. I'm not talking to you anymore.08:28
fidodido sorry man08:28
ok08:28
how to setup repos and share code with others08:29
that part is really hard?08:29
i dont get it08:29
elmarco|foodelmarco08:33
wart left08:39
wart joined08:44
meandtheshell joined08:46
fhobia left08:54
keinfarbton left09:04
whee joined09:13
Yuuhi joined09:14
kumbayo joined09:16
dkagedal joined09:33
cortilap joined09:35
Beket joined09:37
adante_ joined09:59
ferdy joined10:07
Gin-geRpolyonymous10:12
adante left10:14
adante_adante10:14
janm joined10:17
felipe joined10:19
masonj_ left10:24
Dentharg joined10:47
Dentharg Hi!10:47
need some guidance on git usage10:49
fultilt left10: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 did10:55
vmiklos, I just need some advice on branch layout and working10:56
vmiklos, is it better to have separate working directories when doing separate features10:56
pasky gitster: hmm, reading it more carefully again, it's hard to say, the description is confusing10:56
Dentharg vmiklos, or just pull into one place and do branch switching10:56
vmiklos, I am keen Subversion user that wants to switch10:56
vmiklos Dentharg use branches10:56
btw then read http://git.or.cz/course/svn.html10:57
Dentharg vmiklos, ok. thank you!10:57
siprbaum not so sure about the usage of brnaches10: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 compile10: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 lost11:03
pasky yes11: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 go11:05
pasky alternates broken in this case too, but at least no race conditions11: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 joined11: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 left11: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 joined11: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 yes11:15
that would be ideal11: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 joined11: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 joined11: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 take11:20
doublec so you get a merge conflict then make a decision?11:20
siprbaum yes11: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=289511: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 gitster11: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 commits11:23
the file removal in the original branch11:24
and the patch application and file removal in the feature branch11:24
i want to logically tie these in with each other, but I guess that this is not possible, huh?11:24
sirNetwerk left11:26
siprbaum madduck: why are there 2 branches involved?11:26
Lash| joined11:26
madduck fair question; simply because it's a change from upstream i need to track separately11:26
the idea is that i have an upstream branch and a bunch of feature branches11:26
and an integration branch where i produce the final package11:26
some feature branches are intended to go upstream, some are debian specific11:27
so i'd like to keep them around11: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 groups11:28
it's really a question about comverting patch files to branches11:28
orig branch has patch files, and i want to replace each of those files with a branch off orig11:28
the problem is that it seems impossible to do this with one commit11:29
meandtheshell left11:29
madduck i have to commit rm patchfile to orig11: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 branch11: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 patchfiles11:30
which means i have to remove them from the repo after applying them to individual, new branches11: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 version11: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/lenny11: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 upstream11:32
wait, lemme draw this...11:32
Hacky joined11: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 scans11:35
Sho_ joined11:37
gitster finally crashes...11:37
jody left11:37
madduck :)11:38
almost done11:38
gitte Good night gitster11:39
madduck http://scratch.madduck.net/__tmp__branches.pdf11:39
so F1/F2 are debian-specific branches i merge into each release branch11:40
F3 is a feature branch/bug fix that upstream accepted between sarge and etch11:40
and F4 is a feature branch that i spawned out of the sarge branch and now merge into etch and lenny11: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" list11: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 input11: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 fixes11: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 thing11: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 understand11: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 branch11:46
Beket left11:47
HackyKid left11:49
siprbaum and the other way to do it is ... ?11:50
zmk left11:50
Beket_ joined11: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 branch11:51
Beket_ Hello people. Could anyone hint me regarding this ? http://rafb.net/p/f2EC2W97.html Thank you in advance11: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/Notes11: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 merge11: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 changes11: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 left11: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 release11:57
i did not know you can branch a branch multiple times off master.11:57
siprbaum its just a merge of maint and master11: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 sense11: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 release11:59
madduck siprbaum: yes.12:00
hliusv561_: save them, as in maint-sarge, maint-etch branches?12:00
jlh left12:00
jlh joined12: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, then12: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 branch12:05
thanks guys, it'12:07
s been a good and most helpful discussion12: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 joined12:16
madewokherd joined12:23
jcollie joined12:40
lcapitulino joined12:43
WackyKid joined12: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 left12:47
Lash| left12: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 asciidoc13:02
there may be a template with basic stuff every document in git/Documentation should have13:02
Hacky left13:02
madduck and because it's the same as in Linux (assume for now), it's a separate repo: repo.or.cz/docu.git13: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 submodule13:03
in git/Documentation/templates and then I'd have git/Documentation/templates/template.txt13:04
but to create git/Documentation/foo.txt, I'd have to just copy the file13:04
and there would be no notion in the history that the file's ancestor is templates/template.txt13:05
am i making sense?13:05
vmiklos sure. the history is not shared between the two repos13:06
d0k joined13:17
cmarcelo joined13:19
weazzle joined13:21
slaq hrm13:22
anyone know if there's anything like trac or redmine for git?13:23
rodserling left13: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 trac13:27
Just google for git trac plugin and see what you find.13:28
slaq i found a few patches and "experimental" stuff13:30
but nothing to warrant a testdrive13:30
i also found an interesting discussion on the git ml about a distributed bugtracke13: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 joined13: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 left13:38
vmiklos hmm13: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 goes13:41
vmiklos imho git reset HEAD foo.c will do what i want, but it will touch the working dir, too13:42
gitte vmiklos: AFAIK "git reset HEAD foo.c" (which is implicitly --mixed) will not touch the working dir.13:43
hap: hehe13:44
vmiklos and --soft is what will?13:44
ah, no13:44
gitte git reset with paths is not possible with --soft.13:44
vmiklos goes and reads the man page again13: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` joined13:45
hap gitte: wait, i didnt try mercurial yet ;)13:48
Beket_ left13:55
KirinDave joined13:56
gitte hap: hehe.14:04
KirinDave left14:07
jackbravo joined14:09
aroben joined14:11
lkjasa left14:21
aroben left14:25
stouset joined14:26
KirinDave joined14:28
madduck http://git.madduck.net/v?p=tpl/s5/slides.git;a=summary14:32
the shortlog field is empty, probably because there is no default HEAD14:32
but how can i make it appear e.g. with the tip of the en branch?14:33
aaaah14:33
pdmef left14:33
madduck HEAD was actually pointing at a nonexistent ref14:33
gosh i love how git is so filebased14:33
gitte left14: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 indeed14:35
myrizio joined14:35
weazzle left14: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 there14:38
then check in .gits into the machine repo14:39
now you can branch off that repo and invoke a shell script14:39
which then iterates ~/.gits and finds config files; e.g. for ~/.gits/.etc/mutt/config, it then git-inits ~/.etc/mutt14:39
and hardlinks (or symlinks) the config file to ~/.etc/mutt/.git/config14: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_gonedwmw214:41
mankind_tweezer joined14: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 joined14: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 see14: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 blob14: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'oh14:51
i guess this is one of those things i'm not supposed to try to do14: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 from14: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 directly14:54
orospakr joined14:54
hliusv561_ mankind_tweezer: There's shell escapes in LaTeX?14:54
mankind_tweezer i believe it's possible to do that14: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 joined14: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 here14: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 git14: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 helpful15: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, somehow15:01
hliusv561_ mankind_tweezer: Or stuff makefile there that could print it...15:02
raw-bin joined15:03
QuercusMax joined15:07
QuercusMax left15:08
QuercusMax joined15:10
KirinDave left15:17
aroben left15:22
aroben joined15:26
pygi joined15:28
tchan left15:31
aroben left15: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 joined15:38
KiBi joined15:41
tokkee tsuna: Have a look at git-cherry - is that what you want?15:43
p4tux joined15:43
madduck tsuna: you cannot.svn does not do merge tracking yet15:43
KirinDave joined15: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 synchronised15:47
or relative paths?15:47
rgk joined15:48
nashdj left15:54
madduck oh, .. is . since the paths are relative to $GIT_DIR16:03
so ../.. is .. :)16:03
KiBi heh :)16:03
vegard joined16:07
jackbravo left16:08
jackbravo joined16:08
bentob0x joined16:08
vegard hello. I am having trouble compiling git with the sun C compiler. can somebody help me with this?16:09
robin joined16:13
amfwrk left16: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 index16:15
mankind_tweezer left16:15
madduck yes, i am trying to add the config file of a lower $GIT_DIR to the current one16:15
amfwrk joined16:16
aroben joined16:18
QuercusMax left16:19
KirinDave left16:19
dwmw2dwmw2_gone16:19
QuercusMax joined16:24
robin QuercusMax: hi16:27
QuercusMax hey16:27
robin I've update my pu branch with fixes to the history view16:28
QuercusMax excellent, i'll take a look16: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 WorkdirCheckout16:29
I think I've got all the D/F conflict handling taken care of, which was actually surprisingly straightforward16:29
gnilor joined16:32
rtmfd_icbm joined16: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/warnings16:34
QuercusMax gnilor: you probably want fetch instead of pull16:35
then git-checkout -b mybranch davem/net-2.6.2416:35
that will create a new branch cloned from davem/net-2.6.24, and switch to it16:36
pull is the same as fetch + merge16:36
gnilor tnx, the fetch worked, now just the branch switching thing16:37
pygi left16:38
QuercusMax gnilor: did you set up a remote? that's probably the simplest way to do it16:39
kumbayo left16:39
QuercusMax gnilor: git-remote add somebody git://domain/path.git16:39
gnilor: git fetch somebody16: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 url16: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 merge16:42
KirinDave joined16:43
lcapitulino left16:44
workkevin joined16: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 left16:47
lcapitulino joined16:50
dkagedal left16:51
fidodido_ joined16:53
fidodido left16:53
kumbayo joined16:55
mario_ joined16:57
meyeringjim-away16:58
mario_pygi16:58
jim-awaymeyering16:58
zeenix joined17:01
zeenix hi17:01
i've been using git-svn for more 2 months now and there hasn't been any major problem until now17:02
$ git-svn rebase17:03
Current branch master is up to date.17:03
$ git-svn dcommit17: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 40517: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 branch17:05
WackyKid ah17: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 merge17:07
dunno the details though...17:07
zeenix hm..17:07
QuercusMax left17:08
elmarco zeenix: this has been change recently17: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 me17:12
it is a mess for me right now :)17:12
zeenix: conflicts merge might be like branch/merging17: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 manually17:13
WackyKid i never had a problem with git-svn, but then i usually do rebase instead of merge heh17: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 joined17:18
mog joined17: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 neat17:20
and of course all history browsing is blazingly fast compared to svn17:20
and then there's git-rebase to clean up a local commit series before i push it so the svn repo17: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 :-p17:22
elmarco I miss git-svn tag though17:22
it could be possible to do it I think17:22
WackyKid and i didn't even mention being able to make local commits without publishing then to the server17:23
i'm already taking stuff for granted :-p17:23
elmarco (the same is true for branching, but I don't really need it since I use git ;)17:23
lyakh joined17:23
elmex left17:28
elmex joined17:29
Tv left17:29
dkagedal joined17:33
WackyKid cd #konversation17:35
oops :-p17:35
capisce /join17:35
WackyKid indeed17:35
my mind had only switched from shell to irc halfway :-p17:36
lichtblau joined17:36
cortilap left17:37
myrizio left17:49
GyrosGeier left17:51
QuercusMax left17: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 relationships17:56
mostly intended for adding relations where none exists17:56
elmarco or when it is lost ;)17:56
robin no17:56
you cannot lose the parents17:56
elmarco robin: not my fault if git-svn lose the relation in 1.5.217:56
and 1.5.3 cvs is weird when merging with branch not coming from svn17:57
WackyKid left18:02
zeenix i just reset my master branch to the commit before the merge18:03
but i still get the same error from `git-svn dcommit`18:03
KirinDave_ joined18:03
zeenix ok! now it's good after i did a `git-rebase`18:05
dkagedal left18:10
dorileo joined18:12
KirinDave left18:16
KirinDave_KirinDave18:16
Beket_ joined18: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 ? Thanks18:19
yorgen1512 left18:19
Tv joined18:20
Tv left18: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 tsuna18:22
tsuna Beket_: np, but remember that you shouldn't use rebase on a branch where commits have been published18:23
aroben joined18:24
Beket_ sure, thanks for the hint18: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 oO18:26
HackyKid joined18:27
Lash| joined18:29
male Does anyone here do work on gitk?18:34
raw-bin left18:34
Eludias joined18:34
devogon left18:35
elmarcoelmarco|gym18:35
devogon joined18: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* not18:51
if there is any damage it is a bug18:51
workkevin I'm sure tsuna finds that very comforting. ;)18:56
robin <std/disclaimer>18:58
ACSpike[Work] joined19: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 gitmed19:04
tronical ACSpike[Work]: it's a graphical installer, just click on it ;-)19:04
ACSpike[Work] right, I did19:04
it installed19:05
tronical cool :)19:05
ACSpike[Work] then I came back the next week19:05
tronical if all worked fine you should be set to use git then :)19:05
ACSpike[Work] right19: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 bash19:05
cortana i run into these problems whenever i use windows :)19:06
tronical msysgit works fine for me in cmd.exe19:06
bentob0x left19:06
ACSpike[Work] ok, thanks19:07
bentob0x joined19:09
nud joined19:10
pygi left19: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 left19:15
vmiklos http://code.google.com/p/msysgit/?19:16
MadCoder gitster: I just sent my patchset19:19
for whatever reason git-send-email didn't number them, there is 7 of them19:19
yorgen1512 joined19:19
MadCoder crap I sent a wrong one19: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 --amend19: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
http19: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 branch19:35
jaalto Beket_, that that --track, thanks19:35
Beket_ your welcome jaalto19: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 repo19:39
strangy joined19:40
ACSpike[Work] tronical: have you had success cloning over ssh?19:42
flo joined19: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 sofar19: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 permissions19:45
flo: http://www.kernel.org/pub/software/scm/git/docs/everyday.html19:46
flo jaalto: i set the whole repodir to 777 to make sure but that doesn't help19:46
jaalto flo: I understand 777 for testing, but you can see them permissions under text "CVS-style shared repository."19:47
d0k left19: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 REMOTE19:50
Beket_ oh thanks jaalto for the feedback19:51
jaalto For the record: To fetch from remote, simply: git fetch <URL> <branch>19:51
strangy left19:52
elmarco|gymelmarco19:52
strangy joined19: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 first19:58
point19: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 either19:59
strangy left20:03
ACSpike[Work] left20:04
KirinDave joined20:05
Lash| left20: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] joined20:09
mnemoc joined20: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 better20:16
jaalto flo: Unfortunately it's late here, so I must leave. I hope you get further answers20:18
jaalto goes sleeping20:18
amfwrk gitster: Neat, thanks!20:18
jaalto away at sleep20:18
flo jaalto: ok thanks!20:18
nud left20: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 box20:19
nud joined20:20
nikodemus` left20:26
sgrimm joined20:27
elmex left20:32
elmex joined20:32
elmex left20:38
elmarcoelmarco|away20:39
xkr47 hi20:39
bentob0x left20:39
bentob0x joined20:40
elmex joined20:40
vmiklos hm20:43
bentob0x left20: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 file20: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 joined20:46
vmiklos fatal: pathspec 'baz.c' did not match any files20:47
for git rm --cached20:47
gitster git status still says 'new file baz.c'20:47
gitster is baz.c a new file?20:47
vmiklos yes20: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.po20:48
from git status20:48
git rm --cached -- po/pootle/da/jToolkit.po20:48
fatal: pathspec 'po/po/pootle/da/jToolkit.po' did not match any files20:48
doh20:48
sorry, pebkac:)20:49
i was not in the repo root20:49
QuercusMax joined20:49
xkr47 :)20:49
vmiklos git rm -f --cached worked fine20:50
gitster why did you even need "-f"?20:50
vmiklos git rm --cached -- pootle/da/jToolkit.po20: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 file20:51
gitster It was because you had modifications since the staged version, which makes sense.20:51
vmiklos hm, possible :)20:52
bentob0x left20:53
xkr47 hmm, if that was the case I think the error message is slighly misleading20:53
gitster error: 'foo' has staged content different from both the file and the HEAD20:54
(use -f to force removal)20:54
vmiklos hm yes20: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 actually20: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 repo21:00
but that I have to also add some macro or interface in our core libraries21: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.c21: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 it21:02
rtmfd_icbm left21: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 msysgit21:04
MadCoder hehe21: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 modules21:06
maybe I should use that less in functions, and use the _init() function instead21:07
bfields joined21:08
lcapitulino left21:09
etnt joined21:09
QuercusMax left21:09
etnt left21:09
robfitz_ left21:10
janm left21: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] left21: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 121: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 someday21:13
MadCoder hliusv561_: and I agree like said21:13
Pistahh joined21: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 joined21: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 said21:15
robin gitster: the auto-gc21:15
MadCoder should I say it a third time ? :)21:15
robin I have looked yer21:16
generally, I think git should do its own homework21:16
QuercusMax joined21: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 around21:17
robin i.e. I like the idea at least21: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 unsigned21:19
robin then it's fine as long as the others are unsigned too21:21
or..21:21
it's ok21: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 sense21:22
:)21:23
Eludias__ joined21:23
MadCoder I could also argue that sb->len cannot be ULONG_MAX as it's odd21:24
and that the allocation strategy cannot reach taht number :P21:24
but well21: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 test21:24
instead of my > and all is fine21:25
hliusv561_ MadCoder: And aren't extensible arrays usually grown exponentially so they have O(N) amortized running time?21:25
elmex left21:26
bronson joined21:26
MadCoder hliusv561_: I was just making silly arguments, you're not really supposed to answer to them ;)21:26
elmex joined21:26
MadCoder hmm gitster: there is a small issue in strbuf.c now that I reread the code again21: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 021: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 left21:29
rtmfd_icbm joined21:33
dirak1 joined21:35
HackyKid isnt it a bit weird storing an eof flag in something thats supposed to be a string? or is it just me :O21: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 left21:38
MadCoder but I've not wrapped my mind about it yet, so I've left the current logic untouched21:38
HackyKid ah, i see21:39
jcollie left21: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 point21:40
HackyKid hmm21: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 buffers21:41
but not exactly like it, and it has some shortcomings21:41
e.g. it always drop the terminator we are looking for21: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 again21: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 need21:43
once you know the need, the correct API is often pretty obvious21:43
sgrimm joined21:44
HackyKid true21: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 address21:44
the read_line "shortcomings" are rather cosmetical and taste issues21:45
not really the same21:45
HackyKid yeah21:46
MadCoder damn, I have to buy gerit pape a beer at some point21:47
he uploads new git versions to debian less than 24 hours after it's released21:47
robin QuercusMax: ping21:47
Beket_ left21:48
doublec joined21:49
dirak1 left21:50
dorileo left21:51
KiBi Gerrit, even.21:52
hliusv561_ Concerning pack merging, where are tags sorted in packs? Mixed with commits?21:55
Kenjin left21: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_ left22:04
pygi joined22:04
hliusv561_ flo: s/pull/fetch/.22:05
nashdj joined22: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 left22: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.. thanks22:08
aroben left22:09
achiang joined22:15
Eludias__ left22:15
Eludias left22:15
Oejet left22: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 origin22: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 :O22: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 it22:19
DrFrasierCrane joined22: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 left22:19
bdiego left22:19
achiang gitster: for example, adding debug printk statements, etc22:19
gitster A short answer: don't. Another answer: stash it away (see git-stash(1)).22:19
zmk joined22: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.html22:21
gitster: i do notice it here: http://www.kernel.org/pub/software/scm/git/docs/user-manual.html22:21
gitster: yep, i don't mind reading docs/man pages, but i didn't even know git-stash existed. thanks22:22
fwiw, i don't think "temporarily setting aside work in progress" should really fall into the "Fixing Mistakes" category22:22
but thanks for the help22:23
HackyKid argh! the font list popupin git-gui is too large to fit on the screen, and there is no way to scroll it22: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 left22:24
DrFrasierCrane left22: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 left22:26
hliusv561_ HackyKid: And using arrow keys probably results selected entry going out of screen? :-|22:26
cortana achiang: backports.org22:26
you can get 1.5.2 from there :)22:26
agoode joined22:26
HackyKid arrow keys do nothing22:27
cortana in farct, according to http://packages.debian.org/git-core you can get 1.5.2.422:27
hliusv561_ cortana: Sadly 1.5.2.4 does not have 'stash' or 'rebase -i'.22:27
HackyKid scroll wheels close the popup22:27
but its known bug i hear :-p22:28
cortana ah, though it should be easy to build the package of 1.5.3 from unstable on etch22:28
achiang cortana: ah, thanks for the backports pointer. installing it now, thanks.22:29
achiang discovers what hliusv561_ points out22: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 backport22:32
but I can't do that earlier22:32
cortana MadCoder: sweet22:32
fair enough22:32
MadCoder and it seems there is issues with gcc on hppa again so I'm not sure when it will be22:32
cortana ugh22:32
elmex left22:32
MadCoder http://buildd.debian.org/~jeroen/status/package.php?p=git-core&suite=unstable22:32
it happened before, I suppose building with -O0 will do the trick22:33
cmarcelo left22:34
cortana hm another buildd status page :)22:34
lichtblau joined22:35
MadCoder that'sthe sole useful one :P22:35
cortana that makes three i have bookmarked now :D22: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 222:36
this one and experimental.ftbfs.de/new/ for the bpo, volatile and experimental networks22:36
cortana ah nice22:36
MadCoder the latter is the same as the former, it just that it deals with other sets22:36
cortana yup22: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 vi22: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 left22:44
aroben joined22:45
jasam joined22:49
devogon left22:51
ferdy left22:55
p4tux left22:56
hliusv561_ HackyKid: I think the problem is in TK libraries, not in Git-gui.23:12
_aleph left23:14
kblin left23:14
kblin joined23:15
kblin left23:15
kblin joined23:15
kblin left23:15
kblin joined23:15
kblin left23:16
orospakr left23:16
dash__ joined23:16
cdcarter joined23:17
cdcarter left23:17
flo left23:17
lyakh left23:20
Nemoish joined23:26
Nemoish left23:27
dash_ left23:28
HackyKid hliusv561_: yeah, looks that way23:29
especially because the same script *does* allow scrolling on windows :O23:29
BadQuanta left23:37
BadQuanta joined23:37
bdiego joined23:37
reelman_ joined23:39
achiang left23:39
reelman_ left23:39
reelman joined23:40
gitster I thought that was known and you guys were talking about a workaround...23:43
robin left23: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 left23: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 push23: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 joined23:54
reelman ok23:55
i think i get it23:55
hliusv561_ doesn't use 'git pull' much. He likes more to use 'git fetch' first and then 'git merge'.23:56
Yuuhi left23:56
standel joined23:56
standel left23:56

Logs Search ←Prev date Next date→ Channels Documentation