IRCloggy #git 2009-05-10

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.

2009-05-10

gotgenes left00:00
drewolson left00:01
joshsdc left00:03
catalis left00:03
dsyzling joined00:03
drizzd joined00:04
dsyzling left00:04
WALoeIII left00:06
toxx_ left00:07
TokyoDan joined00:07
towski left00:08
towski joined00:08
wezyde left00:08
quoin joined00:09
WALoeIII joined00:10
towski_ joined00:10
ssvb joined00:11
towski left00:11
wsc_ joined00:12
wwwald left00:13
wshimmy1 left00:15
gotgenes joined00:15
dereinedereine[OFF]00:15
justatheory left00:16
wshimmy joined00:17
LiamH left00:22
shana joined00:24
mjf left00:25
vipul left00:25
wsc left00:28
etienne9 joined00:29
etienne9 left00:30
xyz joined00:31
TokyoDan left00:33
eletuchy left00:34
JasonWoof joined00:35
dreiss left00:35
johan-s left00:35
alanhaggai joined00:36
alanhaggai left00:36
alanhaggai joined00:38
uau left00:39
qhoxie left00:42
ericindc left00:44
wsc joined00:45
uau joined00:46
sebleiersebleier|away00:46
zirpu left00:46
MisterN_ left00:49
alanhaggai Hi. Is there any way to add a branch to track a Subversion repository?00:53
bryanray left00:53
brennen_ left00:57
brennen joined00:57
kuadrosx left00:59
wsc_ left00:59
Minimiscience joined01:01
rettub_ left01:01
wsc_ joined01:02
lolage left01:02
dtangren left01:05
schacon left01:06
wsc__ joined01:06
gaveen_ joined01:06
rettub_ joined01:07
tatsuyao left01:07
Fissure alanhaggai: you mean like git-svn?01:07
alanhaggai No.01:07
Fissure: I imported a Subversion repository to GitHub. Then, I cloned it.01:08
So, the cloned one has no idea of the Subversion repository.01:08
How can I pus commits that have been made by someone else to the Subversion repository?01:09
s/pus/push/01:09
So I was thinking of adding a remote tracking branch for the Subversion repository. I am not sure how to create such a branch.01:09
Fissure: I do not know if it is possible either.01:10
aziz left01:10
gaveen left01:12
brennen left01:15
wsc left01:16
SRabbelier left01:18
wsc_ left01:25
Beket_ joined01:26
Beket_ Hey people. Is there a way to git cherry pick the last N commits of a branch ?01:26
or perhaps not use cherry-pick at all01:27
JasonWoof left01:27
ceej left01:27
Beket_ i just want to grab the last N commits of a branch01:27
bdrewery I think git-rebase can do that01:32
Beket_ really ?01:32
xm01:32
paulboone left01:34
parasti left01:37
ilogger2_ joined01:46
ceej joined01:48
joevandyk joined01:49
ceej left01:51
ericindc joined01:52
JasonWoof joined01:58
mw joined02:00
joshsdc joined02:00
[1]intripoon joined02:06
wsc joined02:07
bryanray joined02:13
brennen joined02:14
paltman94 joined02:16
mw left02:20
cytrinox joined02:21
mw joined02:21
MachX joined02:22
lasso joined02:22
[1]intripoonintripoon02:24
lasso left02:24
bcardarella joined02:31
brennen left02:31
rekoerb joined02:32
niki joined02:35
mlins joined02:35
brennen joined02:35
bdiego joined02:39
jelly-bean joined02:42
jelly-bean if i change a file but haven't committed and i want to undo those changes with git (same as git reset --hard HEAD except for one specific file or a couple files only) how can i do that?02:43
git checkout HEAD <file> ?02:44
Beket_ git checkout HEAD -- file02:44
jelly-bean Beket_: ok, thx.02:44
jelly-bean left02:46
Beket_ if u hsve git added it as welll u need git rm --cached <filename>02:46
MachX left02:46
rekoerb left02:46
tjafk1 joined02:52
mw left02:53
brennen left02:54
brennen joined02:54
alanhaggai Hi. I am trying to add a remote Subversion repository tracking branch.02:55
I did a `git svn init <repo>` and then `git fetch git-svn`. I am thinking of doing the fetch occasionally and merging it with master.02:55
Is it a correct workflow, or can you suggest another?02:55
brennen_ joined02:59
JPohlmann1 joined03:01
AkumaStreak joined03:06
Run If I do 'git push' in branch master, it tries to push branch build ... is that a topgit thing? This is insane :/03:08
http://codepad.org/4VJu3xBU03:10
clumzee joined03:11
clumzee clueless ;)03:11
I need to clone a repository in a bash script, does anyone know how to automatically respond to the verify rsa fingerprint?03:11
or disable it during a clone03:12
RandalSchwartz log in once manually03:12
and say "yes"03:12
that's a safety thing03:12
don't try to work around it03:12
ericindc left03:13
brennen left03:13
[1]intripoon joined03:13
clumzee its going to be running on hundreds of machines ;)03:15
SamB why ?03:15
clumzee why not03:16
SamB I mean, what for?03:16
RandalSchwartz first, ask yourself why that check is there03:16
clumzee in a cloud of application servers03:16
RandalSchwartz and then decide if you *really* wanna work around it03:16
clumzee yes.03:16
RandalSchwartz if you're just pulling, use git: protocol03:16
not ssh03:16
brennen_ left03:17
RandalSchwartz heck... you can even use http protocol03:17
clumzee when i have servers that come up and down automatically and I know the finger print ahead of time, it would be sweat to just 'ignore it'03:17
SamB wouldn't it be better for it to be in known_hosts ?03:17
clumzee can you add a finger print to a known_hosts i thought it had to be all the hashed stuff03:18
RandalSchwartz its a private repo on github, I think its always over ssh03:18
SamB that's where they go03:18
when you say yes03:18
so ... just do it once and say yes, then you can copy that entry to every known_hosts file or something ...03:19
RandalSchwartz why not just set up an rsync server03:19
is this always pull-only?03:19
clumzee yeah but its not a nn:nn:nn:nn: etc, its the all hashed up funness03:19
RandalSchwartz sounds like you're abusing git03:19
SamB clumzee: and ?03:19
I guess it's just a longer fingerprint ...03:20
in a base other than hex03:20
clumzee hrm maybe.03:20
RandalSchwartz, I could do that, but id like to have as little moving parts as possible, and i like being able to text my servers a rev number and them all grip it03:21
RandalSchwartz yeah, sounds like you want an rsync server03:21
or any of a dozen other solutions03:21
not git03:21
shze joined03:21
RandalSchwartz git would be abuse there03:21
SamB RandalSchwartz: overkill, sure ...03:21
but why not ?03:21
RandalSchwartz there are mass-configurator solutions03:21
why?03:21
why use a hammer to pound in a screw03:21
doesn't make sense03:21
SamB if he's already using git to control the files ...03:22
RandalSchwartz but he doesn't need the git repo on each machine03:22
SamB why not use it to update them as well ?03:22
RandalSchwartz he just needs the rsync03:22
SamB well, true, he doesn't need the entire history ...03:22
RandalSchwartz and an anon rsync server is trivial03:22
so have one master, edited with git03:22
SamB I'm not sure how anon is better03:22
RandalSchwartz and 1000 slaves that view it with rsync03:23
clumzee left03:23
alama joined03:24
alama can one convert a bzr repo to a git repo?03:25
i'd like to put up some of my old stuff on github.com03:26
but some of my old repos are bzr03:26
xeno__ joined03:27
cilly joined03:27
eno__ joined03:28
intripoon left03:29
[1]intripoonintripoon03:29
paltman94 left03:32
JPohlmann1 left03:32
shze I want to cherry-pick a commit from another repository, but despite reading man pages and searching I can't find how to do this. can anyone help me?03:33
bdrewery git remote add someother URL03:33
git cherry-pick hash03:33
git fetch someother too03:33
shze oh, ok, so I missed the very first command. thanks, I'll try03:33
eno__eno03:36
cdmwebs joined03:37
shze cherry-pick returns fatal: Could not find <hash>; do I have to create a local branch from the remote one first?03:37
bdrewery did you fetch?03:38
shze before cherry-pick? no.03:38
bdrewery yeah fetch first03:38
orafu joined03:40
shze worked great. thanks a lot!03:40
bdrewery :)03:41
ashleyw joined03:45
jelly-bean joined03:46
jelly-bean what's the cmd to quickly git branch to a temp swap/switch branch03:46
or something like that03:47
shze left03:47
brennen joined03:49
bdrewery git stash probably03:51
jelly-bean bdrewery: yep03:55
justatheory joined03:57
justatheory left03:59
seangrove joined04:02
bdiego left04:02
jelly-bean left04:04
brennen left04:05
cdmwebs left04:06
wsc_ joined04:19
brennen joined04:28
wsc left04:29
ivanoats joined04:30
dreiss joined04:39
fujin joined04:45
brennen left04:46
schacon joined04:48
arohner joined04:50
hyperair joined04:55
schacon left04:55
hyperair left05:01
hyperair joined05:01
curvature joined05:01
killerchicken__ joined05:03
alama left05:04
bobmcw joined05:04
mlins_ joined05:05
eno__ joined05:07
rubydiamond joined05:12
g3d joined05:14
mlins left05:16
eno left05:18
towski joined05:19
ivanoats left05:20
eno__eno05:26
arohner left05:29
harinath joined05:30
unixluser joined05:31
unixluser hello. theres a git repo that i want to clone.. but i only want to clone a specific branch of it? how do i do this?05:31
cehteh mkdir project; cd project05:34
git init05:34
git pull git://url branchname05:35
cxreg iirc, that will merge the branch into your master, though?05:36
unixluser .git/config only mentions core05:37
not the branch name05:37
nor remote details05:37
cxreg yes, "git pull" with args doesn't always do what you expect it to do05:38
maybe something more like "git init; git remote add remotename git://url; git fetch remotename branch; git checkout -b remote/branch branch"05:39
brennen joined05:39
unixluser 'remotename' would typically be origin, right?05:40
cxreg could be, doesn't have to be05:41
that's the default name it gives clones, though05:41
ashleyw left05:41
ashleyw joined05:41
aspotashev joined05:43
unixluser cxreg: the last command (git checkout..) results in fatal: git checkout: updating paths is incompatible with switching branches.05:43
cxreg what version of git?05:44
sounds like 1.5 maybe05:45
cehteh cxreg: yes but master is empty after a git init .. alternatively you can just fetch that branch and reset your master to it05:45
cxreg sure, if you're ok with master being something that's not remote/master05:46
unixluser yeah, i'm fine with that05:48
as long as pushing it online will go properly to the branch05:48
cxreg push expects that the branch names are symmetric, unless you tell it otherwise05:48
imho, naming fetched branches a different name leads to trouble05:49
unixluser ot05:49
it's a very basic repo05:49
basically remotely created to store dotfiles05:50
for different distributions, with each having a different branchname05:50
i'm just looking for an alternative to standard git clone; git branch -D master05:50
cxreg to push, you'd need to "git push remote master:remotebranchname"05:51
brennen_ joined05:51
unixluser yeah, i just avoid 'master:' altogether05:51
ashleyw_ joined05:54
brennen left05:56
wsc_ left05:57
sitaramcell joined05:58
brennen__ joined05:59
rubydiam_ joined06:01
cxreg unixluser: my last command had a typo, btw which is probably what failed06:01
git checkout -b branch remote/branch06:01
rubydiamond left06:02
ashleyw left06:02
unixluser nope, didn't work either06:03
git 1.6.306:03
rubydiamond joined06:04
gaveen__ joined06:04
rubydiam_ left06:05
WALoeIII joined06:07
brennen_ left06:08
dduncan joined06:09
unixluser left06:09
brennen__ left06:16
dduncan left06:17
AkumaStreak left06:18
sitaramcell left06:25
WALoeIII_ joined06:31
WALoeIII left06:32
wsc joined06:37
kate21de joined06:43
fargiola` joined06:43
fargiola`fargiolas06:44
joshsdc left06:45
ashleyw_ left06:50
elmob joined06:55
dreiss left06:59
r0bby joined07:01
foutrelis_ joined07:01
GreenAsJade joined07:01
GreenAsJade Is it "basically a bad idea" to clone another repo into a subdirectory of an existing repo?07:02
Or should that fundamentally "just work"?07:02
resmo joined07:02
cilly left07:02
RandalSchwartz you want submodules07:03
GreenAsJade I have a project into which I did this (not thinking too hard, obviously). Then I pushed my project back to where it comes from. The 'sub repo' didn't get pushed/07:03
RandalSchwartz then it works07:03
AAA_awright GreenAsJade: Sounds like submodules07:03
RandalSchwartz without that, no it's a bad idea. :)07:03
GreenAsJade Ah - OK, "doh"07:03
GreenAsJade tips his hat respectfully to RandalSchwartz, runs off to learn The Right Way07:04
GreenAsJade hmm - so I can07:07
t even take a shortcut and copy the other "submodule" in eh, 'cause that's already a 'repo'07:07
(I meant "darn I'll just plonk the files in")07:07
Arrowmaster part of the submodule implentation is that git completely ignores other git repos in subdirs07:09
angerman joined07:10
GreenAsJade So, before I get carried away (now that I have read something about them) ... if I "submodule add" rather than just splat the module repo in, then git push the project, the submodule will get pushed too, in it's right place in the project?07:12
Arrowmaster not really07:13
GreenAsJade rats :)07:14
Arrowmaster but information about where others can clone that repo from and what exact commit you were on in that repo when you commited to your project will be stored07:14
GreenAsJade I better ask how to do what I want to do then :)07:14
I have a project, which is deployed by git push07:14
fargiola` joined07:15
GreenAsJade I have created a component which needs to be in this project, and it is in a separate repo (and is pushed to github seprately)07:15
the first project needs to contain the files of the second when it is deployed07:15
Arrowmaster is this done with a custom script or are you using a larger project designed to do it? (theres a few)07:15
fargiolas left07:15
fargiola`fargiolas07:16
GreenAsJade so far no scripts, just git push ...07:16
mtkd joined07:16
GreenAsJade "git push" pushes the component to github. "git push" deploys the project to it's destination07:16
Unfortunately, when I copied the new component into the right place in the project, it doesn't get pushed07:16
Does this make sense, or is it gibberish?07:18
Arrowmaster sorta yes sorta no07:18
GreenAsJade Strange, this was all feeling good and natural up till today!07:18
Arrowmaster when you say 'deploy' you mean a working copy on a server somewhere is getting updated to use the new version right?07:18
GreenAsJade Right - the server runs off it's copy of the repo, which is the "master". git push sends the new commits up to it07:19
Arrowmaster right07:19
thats not possible without some kinda script on that server to update the working copy07:19
GreenAsJade yow.07:19
dizpater joined07:20
GreenAsJade OK, I must be missing something about how "people normally do what I'm trying to do" then, I'll go take a look at that avenue07:20
dizpater left07:20
Arrowmaster GreenAsJade: faq non-bare07:20
Gitbot GreenAsJade: Pushing to non-bare repositories is discouraged. See http://git.or.cz/gitwiki/GitFaq#non-bare07:20
GreenAsJade (the component is a rails plugin, so there must be some other sensible way to get a rails plugin into a rails project other than copying it's repo :)07:21
Arrowmaster GreenAsJade: like this http://github.com/guides/deploying-with-capistrano07:21
GreenAsJade thanks for taking the time...07:22
Arrowmaster ive never used capistrano and i have no clue if it supports git submodules but it seems to have some sort of dependancy system07:25
NoirSoldats joined07:25
Arrowmaster but as a general rule its probably never a good idea to commit another project directly into yours just so its available when other solutions such as submodules exist, it keeps things a lot cleaner that way07:26
GreenAsJade I think "work out how to install your own rails plugin, instead of ploking it in, dude" is the right advice for me :)07:26
Fragsworth joined07:27
gaveen__gaveen07:30
gaveen left07:30
Arrowmaster GreenAsJade: it whould help if i actually fully read a page before linking it, the github guide for capistrano mentions enabling submodule support so yes it supports git submodules07:32
GreenAsJade :)07:32
wsc_ joined07:37
wsc_ left07:37
patrikf joined07:40
GreenAsJade so ... if I push my component to github, then install it in my project from there, using the rails install, it arrives properly by some magic :)07:44
So my development flow now includes a push to github of the component and a pull back if I change it, but at least it works!07:45
Radar GreenAsJade: when you clone your project you will need to do git submodule update --init in order to get the submodules into your app.07:45
GreenAsJade I don't have control at the deployment-target end. I can only git push to there07:45
But sounds like I should read aobut --init07:45
spuk- joined07:50
spuk- hello, I'm trying something like: 'export GIT_DIR=/tmp/test.git ; git init --bare; git add ~/foo', I'm getting "fatal: This operation must be run in a work tree" everytime, isn't that supposed to work ?07:52
patrikf spuk-: no07:53
ia joined07:53
RandalSchwartz why aren't you inside test.git ?07:53
ahh. ~/foo is not inside GIT_DIR07:53
that's why you can't do that07:53
unless your ~ is /tmp :)07:53
patrikf spuk-: you cannot normally commit to bare repositories07:53
RandalSchwartz ahh, that too07:54
wsc left07:54
RandalSchwartz bare = no workdir07:54
patrikf spuk-: if you must for some reason, you can use "git hash-object -w" in conjunction with "git update-index --cacheinfo" I think07:54
binjured joined07:54
spuk- hmm, that might make sense07:55
thank you both07:55
dreiss joined07:56
fargiola` joined07:56
meder RandalSchwartz: oh, you're a git one too eh07:59
RandalSchwartz eh?08:00
ccherret1 joined08:00
RandalSchwartz meder?08:01
cehteh randal is everywhere :P08:03
mtkd left08:04
aspotashev|eeepc joined08:04
wsc joined08:05
hummingkid joined08:05
meder oh nothing, just saying i see you in two channels08:06
bcardarella left08:06
RandalSchwartz I'm in a lot more than that08:09
smalltalk - perl - git - postgresql - openbsd - opensolaris (etc etc)08:09
and jquery08:09
and whatever else we've recently interviewed on FLOSS Weekly08:09
cehteh you wherent on #cinelerra or #lumiera, shame on you :P08:10
meder well yeah08:10
RandalSchwartz I was a bit overwhelmed on that show08:10
cehteh haha excuses08:10
cehteh hides08:10
RandalSchwartz my line of questions wasn't as good as I wanted. a bit frustrated08:10
did much better on OLE nepal and Xen, I think08:11
part of it was the delay to the UK08:11
and 4 people on skype. that's never good08:11
cehteh yeah i think the whole one was little unprepared .. aaron asked longer ago, but then just reappeared 2 days before08:11
i am happy that we send joel *eg*08:11
RandalSchwartz well - it'll certainly raise the visibility08:12
cehteh and dont call him a kid next time, that was a bit rude :)08:12
RandalSchwartz heh08:12
he's a kid relative to me08:12
cehteh he is our youngster08:12
dodo_the_last joined08:13
RandalSchwartz I'm glad I nailed Leo on the 29.97 though08:13
given that Leo is a TV broadcaster and technician :)08:13
cehteh 30000/1001 to be exact08:13
RandalSchwartz oooh08:13
RandalSchwartz bows in cehteh's general direction08:13
cehteh whenever i see a video lib which handles this incorrectly i barf on it08:14
meder can't handle the context08:14
RandalSchwartz ... To reduce interference between the chrominance signal and FM sound carrier required a slight reduction of the frame rate from 30 frames per second to 30/1.001 (very close to 29.97) frames per second, and changing the line frequency from 15,750 Hz to 15,734.26 Hz.08:14
you're right08:14
wow08:14
cehteh lumiera aims to be a tool which doesnt make compromises in exactness and quality08:15
you dont want your video sync drift away08:15
fargiolas left08:15
cehteh not even microseconds08:15
RandalSchwartz yeah... I've had stuff get off after a while08:16
probably poor computations08:16
cehteh well if its more noticeable then blame your cheap cam08:16
RandalSchwartz tries to figure out what channel he has selected08:17
RandalSchwartz is this #git?08:17
cehteh for some the 44.1 sound carrier drifts with temperature08:17
but the computer expects it to be constant08:17
RandalSchwartz has a bad irc client that doesn't show current channel08:17
cehteh hehe ok :)08:17
cehteh goes one coding08:17
ciskje joined08:17
RandalSchwartz ahh yeah, #git08:18
cehteh there is #openvideo for general video talk08:18
'nuff offtopic here08:18
RandalSchwartz like I need one more channel to irritate peopel in :)08:18
WALoeIII_ left08:19
WALoeIII_ joined08:20
brennen joined08:20
aspotashev left08:21
aspotashev__ joined08:21
Fissure RandalSchwartz: wow, must be a really bad client08:24
and i felt lame for using finch...08:24
radarek joined08:28
dreiss left08:28
mithro joined08:32
brennen_ joined08:32
mithro left08:33
bdowning joined08:34
ethercrow joined08:35
JEEBcz is there an easy way to get the changelog f.ex. between the versions 7554705 and 400740b in git?08:35
RandalSchwartz git log 755..40008:36
rubydiamond left08:36
RandalSchwartz maybe git log 755...40008:36
rubydiamond joined08:37
mithro joined08:37
therrg joined08:37
JEEBcz ok, I'll try :)08:37
aspotashev|eeepc left08:37
naeu joined08:40
brennen left08:41
foutrelis_ left08:49
JasonWoof left08:51
Bogh joined08:52
Bogh morning!08:52
brennen__ joined08:55
Ilari ...08:56
knittl joined08:56
therrg left08:57
smeevil joined08:58
ciskje left08:58
brennen_ left08:58
sitaram joined08:58
solydzajs joined08:58
kahmalo joined08:59
sitaram left09:01
brennen_ joined09:07
lolage joined09:08
angerman left09:08
gilimanjaro joined09:11
brennen__ left09:13
seangrove left09:14
d0k joined09:22
brennen__ joined09:26
DavidKlein joined09:27
tatsuyao joined09:27
patrikf left09:28
mbroeker joined09:29
seradin joined09:32
khelll joined09:32
seangrove joined09:32
seradin hey guys, suppose i have a git-repository at xyz.com/rep.git now i want to check this out on a client machine, edit something and commit the changes: But when i do a git --init followed by a git remote add origin ssh://user@xyz.com/rep.git/ and a git fetch ... then nothing is fetched to my local directory? Why ?09:34
khelll i'm having this error when trying to clone from bare git repo for first time:09:35
fatal: The remote end hung up unexpectedly09:35
Bad port ''09:35
fatal: The remote end hung up unexpectedly09:35
JPohlmann1 joined09:35
brennen_ left09:36
cehteh khelll: "Bad port"09:36
seradin: fetch doesnt update your working tree09:36
seradin cehteh: and how can i do what i want to do?09:36
cehteh first you need to tell what you want to do :)09:37
branches in git are local09:37
seradin i want to check out the stuff from my repository in order to edit and commit it09:37
cehteh there is your local master branch and the remote master branch .. and these are distinct09:37
seradin okay, and how do i pull from one to the other?09:38
cehteh git pull09:38
which is essentially a git fetch + git merge09:38
seradin git pull tells me that it doesn't know what to do09:38
cehteh git pull remote branchname maybe then09:38
your new local repo is brand new (you told you did git init)?09:39
seradin yes, it is09:39
cehteh better use clone, that gets some basic setup right09:40
cxreg git branch -f master origin/master; git checkout master09:40
should do it09:41
cehteh thats what i meant with basic setup :)09:41
seradin i just did what the first answer here sais: http://stackoverflow.com/questions/658885/how-do-you-get-git-to-always-pull-from-a-specific-branch and it worked09:41
cxreg yep, that does the same thing as what i said would do09:42
seradin okay, good09:42
i just hope "git push" will work as well, im very new to git :/ used svn before09:43
cxreg it should, assuming you have write access09:44
_graham_ joined09:44
seradin good :)09:44
mstrl joined09:46
brennen__ left09:47
khelll i have made a new git repo with git init, then i tried to pull the repo from my local machine but i keep getting09:48
fatal: http://git.khelll.com/git/echoproj.git/info/refs not found: did you run git update-server-info on the server?09:48
i'm doing git clone http://git.khelll.com/git/echoproj.git09:48
seradin left09:49
angerman joined09:50
Radar_ joined09:54
mbroeker khelll, check your webdav config09:57
charon khelll: and check if you ran 'git update-server-info' in the server repository09:57
khelll charon why should i run this insturction09:57
i made an empty project09:58
i just want to clone it09:58
just did git init on server and now i want to clone it on my machine09:58
charon khelll: i'm actually not sure in the case of empty projects, but the HTTP transport _needs_ that extra metadata09:58
also note that up until some very recent version, git didn't support cloning empty repos at all09:58
dkr21 joined09:58
charon (not even over git/ssh transports)09:59
khelll ok lemme check that09:59
mbroeker khelll, you need to create the bare repo, mv hooks/post-update.sample post-update && git update-server info to be able to clone it(you will still get a warning, but you can push your initial content)09:59
chmod +x hooks/post-update is essential, too10:00
khelll ok lemme try10:01
mbroeker run chmod before git update-server-info10:01
Radar_ left10:02
Radar joined10:02
khelll mbroeker there is hooks/post-update already10:02
mbroeker is it executable?10:02
charon khelll: first git version that supports cloning empty repos at all seems to be 1.6.2 (commit 86ac7518590 is first contained in 1.6.2-rc0)10:02
Gitbot [git 86ac75185]: http://tinyurl.com/omgb5z -- Allow cloning an empty repository10:02
brennen joined10:04
mbroeker khelll, anyway, do you have a working webdav config?10:05
khelll i have done the first steps, didn't work yet10:06
i'm going to check the webdav now10:06
tatsuyao left10:06
Fullmoon joined10:07
Lenary joined10:09
WALoeIII_ left10:10
psoo joined10:11
cedricv joined10:13
aziz joined10:14
brennen_ joined10:18
kahmalo Can I somehow disable rerere for a single run of git cherry-pick?10:19
With some environment variable perhaps?10:20
bentob0x joined10:20
kahmalo I mean this cherry-pick causes a conflict and I'd like to recheck what the conflict was exactly. However git automatically resolves the conflict using a saved resolution.10:22
brennen left10:24
kaduk joined10:24
charon kahmalo: just guessing here, but doesn't 'git checkout -m -- $path' recreate the conflict? (or does that invoke rerere too?)10:25
fridim joined10:28
Lenary anyone here used grit, the ruby git library?10:33
kaduk left10:33
Radar Lenary: yes10:34
Lenary Radar: how would i get a list of all the files that have been added, removed or changed in a commit10:34
http://github.com/jamis/bucketwise/commit/290f3241a822c0b9b67d2847c5021f468537a96110:35
like there10:35
Radar Hmmm..10:35
Let me check10:35
Lenary where you have a list of what's changed10:35
well, a list of the files that have changed10:35
Radar I've seen it before, just trying to find where.10:36
brennen_ left10:36
Lenary thanks very much10:37
solydzajs left10:37
Radar Lenary: git.commits.first.stats.files10:38
Will return an array of arrays.10:38
Checkout the Grit::CommitStats for more info10:38
Lenary thanks10:39
ah10:40
that's not quite what i'm wanting10:40
alanhaggai joined10:40
Radar What are you wanting then? :)10:40
Lenary well,10:40
that gives me a list of the changed files10:40
where can i see a list of the added files and the removed files?10:40
Radar Added files is where the additions count totals the total count, deleted files is where the deletions count totals the total count10:41
Bogh left10:41
Radar one moment10:42
g3d left10:42
Ilari Lenary: The brute-force way would be to get tree objects corresponding to to commits, then do lockstep walks on them. If you encounter entry present on one and absent on another, everything under it is added/deleted. Also, if entries match, don't recurse into them, as everything under them will match. If leaf entry doesn't match, its modified.10:42
Radar Or so I thought :)10:42
Lenary Radar: i was gonna say10:43
alanhaggai Hi. I have been experimenting with tracking Subversion branches in Git and have arrived at this point where I am unable to push: http://img140.imageshack.us/img140/4126/snapshotq.jpg .10:43
Radar total is not what I originally thought it to be10:43
alanhaggai What can be done inorder to update origin/master?10:43
kumbayo joined10:43
Ilari alanhaggai: 'git fetch origin'?10:43
brennen_ joined10:43
Lenary Ilari: hrm, i think i get all of that except a "lockstep walk"10:43
Yuuhi joined10:43
Lenary sounds like a dance to me!10:44
alanhaggai Ilari: Still I am unable to push.10:44
Ilari: ! [rejected] master -> master (non-fast forward)10:44
ronny joined10:44
wereHamster alanhaggai: faq non-ff10:45
Gitbot alanhaggai: Your push would lose changes on the remote. See http://git.or.cz/gitwiki/GitFaq#non-ff10:45
Radar Lenary: now you've got me thinking!10:45
khelll left10:45
Radar Deleted files, I think, is easy, deleted count matches total count?10:45
Lenary what if you delete one line10:46
and don't add something10:46
total changes == total deletions10:46
that's what i think the total is all about10:46
alanhaggai How can the push made on top of the current changes?10:46
^be made10:46
Radar the total is total number of changes, additions + deletions.10:46
Ilari alanhaggai: Looks like cleanest way is to force the push. Not nice for those tracking the origin repo, but you probably break git svn otherwise.10:47
alanhaggai Oh I see. I will try that. Thanks Ilari.10:47
Lenary Radar: i think so10:47
Ilari alanhaggai: And as rule when pushing stuff from git-svn repo to elsewhere, don't push stuff that hasn't been committed to svn.10:48
alanhaggai Ilari: Okay. I will do so from now.10:48
Radar yay finally found a commit that *added* a file10:49
jkp_ joined10:49
Lenary Radar: lol10:50
ronny hi10:50
any reason why git push wont push to an empty repo without some extra args?10:50
Ilari Lenary: The idea in lockstep walk is to advance the list that has current element before the other (advance both if they are equal). That way, one can process through all pairs of equal elements in O(m+n) time.10:51
Lenary: Assuming sorted lists, which git trees effectively are.10:52
brennen__ joined10:52
Lenary Ilari: the thing is, i'm not so eager to do something like that, as this is a web interface10:53
brennen_ left10:53
Ilari ronny: Because the default is to push all matching branches, and push to empty repo can't have any matching branches.10:53
Lenary rendering the lists on the fly10:53
Radar Lenary: I'm confused... the additions count == total count is wrong becuase?10:53
That's how I can find out if a file is newly created.10:53
ronny Ilari: so i'll have to be explicit about what to push?10:54
Lenary can you show me a little code Radar, which does that10:54
Ilari Lenary: That algo is the fastest way to compute the files added/changed/deleted (it doesn't get copies and moves) without going to storage layer internals.10:54
Radar Lenary: c.stats.files where c is a Grit::Commit object.10:55
One moment, making a pastie10:55
http://pastie.org/473569 <- see permissions/edit, its additions count is the same as the total count10:55
Ilari ronny: Most of the time, those defaults are nice as you may have branches you don't want to publish (yet).10:55
ronny hmk, now i'll jsut have to find an way to do that in my api10:56
Radar I don't know of any other occurance where a file can have 19 additions, no deletions and NOT be newly created :\10:56
Lenary Radar: yes, but think about this - if i add a single line to the file10:56
Ilari ronny: That behaviour also has refspec: ':'.10:56
Lenary and don't remove anything10:56
therefore, additions = 110:56
deletions = 010:56
and total = 1+010:57
ska-fan joined10:57
Lenary =110:57
Ilari ronny: That is, if configuration doesn't say otherwise: 'git push origin' = 'git push origin :'.10:57
Radar Lenary: but it's late and thinking requires precious energy.10:57
Lenary which would make it seem like it was added10:57
Radar: that's a fair point10:57
Radar Right, now that it's in my extremely thick skull I get it now.10:57
ronny Ilari: im writing a vcs abstraction lib, the ways the different vcs's handle branches is quite painfull10:58
Lenary Radar: the same applies for a single deleted line10:58
Ilari ronny: If you want "push every branch", its 'refs/heads/*:refs/heads/*'.10:58
ronny Ilari: i dont think i want it that way10:58
brizly joined10:59
ronny im pondering wether to error out or to default to push only master10:59
Ilari Lenary: The reason that lockstep recursive walk is so fast is that it can instantly prune ALL non-changed subdirectories from search.10:59
Lenary Ilari: that's a good point10:59
alanhaggai Ilari: I force pushed it and it is fine now. No commits were lost at remote. What might be the reason?10:59
Ilari Lenary: And file modification checking is just hash compare.11:00
alanhaggai: Guessing: You did the "add TODO" change. Pushed it and dcommitted. The dcommit added the metadata. Now you had two "add TODO" changes. You did one commit on top of your local version (now different from remote one) and dcommitted that.11:01
alanhaggai: The dcommit-push order matters.11:01
Lenary Ilari: could you pastie me a little code to do this lockstep walk/dance thingy?11:01
Ilari alanhaggai: Its dcommit first, push second.11:02
alanhaggai Ilari: Oh I see. Thanks for explaining it.11:02
brennen_ joined11:02
ska-fan left11:04
ska-fan joined11:04
Lenary Ilari: could you pastie me a little code to do this lockstep walk/dance thingy?11:04
g3d joined11:05
RadarRadar|s11:07
brennen_ left11:08
ska-fan left11:09
ska-fan joined11:09
Ilari Lenary: Here's quick untested pseudocode: http://git.pastebin.com/m1a1435d811:09
kumbayo left11:10
Ilari Lenary: Should illustrate the idea how to do lockstep walk. And oh, directory entries also have mode fields. Something changing into tree or from tree is bit nasty edge-case.11:11
Lenary thanks11:12
brennen__ left11:12
Ilari Lenary: Note the edge case: past-the-end-of-list iterator is interpretted as be after everything else.11:12
Lenary: When sorting by entry name.11:12
aspotashev|eeepc joined11:13
brennen_ joined11:13
cilly joined11:14
ska-fan left11:14
ccherrett joined11:20
khmarbaise joined11:20
psoo left11:21
ccherret1 left11:21
ska-fan joined11:23
alanhaggai left11:25
g3d left11:25
g3d joined11:26
Lenary left11:28
chris2 joined11:32
knitt1 joined11:34
brennen__ joined11:35
radarek left11:36
brennen_ left11:37
charon kahmalo: any luck with my suggestion? (honest question, i'm too lazy to try myself)11:38
knitt1 left11:39
Lenary joined11:41
kahmalo charon: Yes, that works, thank you. (I was away and just saw it.)11:41
charon ah, good to know. thanks!11:41
ronny anyone aware of an equivalent of git status thats more nice to deal with from scripts?11:42
kahmalo ronny: git ls-files -t perhaps?11:42
mstrl left11:43
kahmalo or with some other option, depending on what you want listed.11:43
charon ronny: also git diff-files with various options, depending on what you want to find out11:44
tomoyuki28jp joined11:44
charon and some other diff variant for HEAD-index relationship... git diff-index HEAD i guess?11:44
JPohlmann1 left11:45
JPohlmann joined11:45
tomoyuki28jp I am trying to put the tag v0.1.3, but I just realized that I forgot to put the tag v0.1.2. I know where to put the tag of v0.1.2, but is there a way to put the tag?11:45
ronny i want some simple information about the workdir state, and currently i want to ignore the fact that the index exists11:45
im writing a vcs abstraction lib, and curently parsing the output of git status seemed more accurate than the other commands11:46
however parsing the status output seems plain wrong11:46
and im pretty sure i missed something about the other commands11:46
wereHamster tomoyuki28jp: git tag v0.1.2 $shaofthecommit11:46
tomoyuki28jp wereHamster: thanks a lot!11:47
JPohlmann Hi. In post-receive, when I have an update that introduces a new branch (oldrev = 0...0) and also includes a few commits to the new branch, how can I list these commits?11:49
kraymer joined11:49
sitaram joined11:50
JPohlmann In update a combination of "git rev-parse --not -all | git rev-list --stdin $newrev" works but this doesn't work in post-receive.11:50
tomoyuki28jp left11:50
jceb joined11:50
mjf joined11:57
kahmalo JPohlmann: I guess the hook would have to collect the (old-value, ref-name) pairs from stdin, and then make a list that contains all the old-values from stdin and all the ref-names that exist in the repository but were not listed in stdin. Finally pass new-value --not that-list to git rev-list.11:58
brennen_ joined11:59
JPohlmann kahmalo: Sounds like fun.12:00
brennen__ left12:00
aspotashev|eeepc left12:01
Radar joined12:02
Radar|s left12:02
kate21de left12:03
kahmalo JPohlmann: contrib/hooks/post-receive-email appears to do something like this actually, in show_new_revisions.12:04
JPohlmann: It sets other_branches by grepping the output of git for-each-ref. It only excludes the created ref from the list though; not other refs created in the same push.12:05
Radar left12:05
Radar joined12:05
kahmalo JPohlmann: So, I guess it doesn't work right if someone pushes two identical branches at the same time.12:05
JPohlmann Uhm, yeah.12:06
GreenAsJade left12:09
hummingkid left12:10
aspotashev__ left12:13
aspotashev joined12:14
kate21de joined12:17
rolfb joined12:17
ericindc joined12:18
JPohlmann kahmalo: Is that ever the case? Can't you only push to one branch at a time?12:20
kahmalo JPohlmann: One can list multiple refspecs in one git push command. I haven't checked how the protocol reflects that. However, githooks(5) says the pre-receive and post-receive hooks receive in stdin a line "for each ref to be updated".12:22
cedricv left12:23
aspotashev__ joined12:23
charon JPohlmann: you need to be somewhat careful if you want to be sure to list every new commit exactly once. try maintaining an exclusion list for use with 'git log $new --not $exclusions'. initialize it with all 'old' sha1s, and all branches/tags not affected in the push. insert the 'new' sha1s after processing them.12:28
aspotashev left12:29
sitaram left12:30
RodP2 joined12:34
brennen__ joined12:36
Ilari JPohlmann: Push request in the wire can have arbitiary many update requests for refs.12:37
jnareb joined12:37
brennen_ left12:38
mjf left12:38
jnareb wonders how hard would be to write down proper RFC for git pack protocol (and surrounding things like capabilities)...12:39
cryo_ joined12:40
JPohlmann charon: All in all that sounds so hackish that I'll probably drop the idea of having one mail per commit.12:40
Ilari Actually, those update requests are CAS requests. Sadly, the CAS capabilty is not exposed to client side.12:42
kahmalo I wish it updated all refs atomically.12:43
charon JPohlmann: it's not that hard if you feel comfortable in some scripting language... but i'd suggest you send one mail per _ref update_ on grounds of sheer volume (if you were to, say, subtree-merge another history...)12:44
Ilari Quite interesting to trace what would happen if client lied about old SHA. The answer is that pre-receive and update hooks would get what client claims as old SHA and ref update would fail with "failed to lock" error.12:44
joshsdc joined12:45
Ilari kahmalo: That would require global all refs lock.12:46
JPohlmann charon: If feel comfortable in any language but I have to admit I have a hard time understanding git right. So before I try something like that and fail I'd rather drop the idea.12:46
charon JPohlmann: if your language of choice is python, i can point you at some code i wrote for a reporting bot, but it strives for terseness more than completeness12:46
kahmalo Ilari: Can't one just lock each involved ref individually, and then update them? Locking in alphabetical order to prevent deadlocks.12:46
jnareb thinks that such things (how server and clients react to have/want lines, etc.) should also be in RFC12:47
Ilari kahmalo: Well, maybe that could work too. But wouldn't be "fully" atomic.12:47
JPohlmann charon: As long as the ref update mail contains diffs for all commits it's still ok. But I might as well go back to my commit mail script at the update stage. That sorta worked.12:47
kahmalo Ilari: Do you mean with regard to system crashes? I don't see how the global lock could help there either.12:48
jnareb kahmalo, Ilari: why not try 'packed-refs' lock-and-update... or wouldn't it work because of loose refs precendence?12:48
Ilari kahmalo: With regard to other updates as well.12:48
jnareb: Loose refs indeed have percedence and packed-refs reads are not locked.12:49
jnareb: Plus what if that packed-refs has 10k+ entries?12:49
jnareb Ilari: well, that was just a thought (pack refs + prune loose refs, make refs update via packed refs); packed-refs are single file and single write lock...12:50
hmmm... perhaps multiple pack-refs (like multiple pack files)... just handwaving...12:51
Ilari jnareb: If you really wanted to use just packed-refs, you would need to replace packed-refs with a database... Quite crazy.12:52
jnareb why crazy?12:53
kahmalo subversion is using sqlite nowadays.12:53
Ilari jnareb: And while one is at it, one might blow out refs directory. It would be repository-downward-incompatible, but transport-compatible.12:55
jnareb: As any sort of change that only changes how objects and refs are mapped to disk is transport-compatible by defintion.12:56
Latest transport-downward-incompatible change: Submodules in v1.5.2.12:57
Sqlite? Yuck.12:59
ciskje joined13:02
Jinzhu joined13:04
Ilari Another crazy idea; what about switch --compare-and-swap to 'git push' which would act like -f, except only doing update if current remote tracking branch is up to date (AFAIK, doesn't need protocol extension)?13:08
And besides, for the task, sqlite would likely be overkill.13:09
knittl left13:09
aziz_ joined13:10
aziz left13:10
bx2 joined13:12
jnareb what should I put in 'magic' for 'file' to recognize different versions of pack file, pack index, the index and git bundle?13:12
currently "file *.pack" returns 'Quake I or II world or extension'13:12
:-)13:13
voker57_ git is like a game!13:14
JPohlmann left13:14
wereHamster git is a Massive Multiplayer Online (Role Playing) Game :)13:16
jnareb file 4.1613:18
Ilari jnareb: The only additional stuff usable for file is version code, IIRC at offsets 4-7. Currently its either 00 00 00 02 or 00 00 00 03.13:18
jnareb: (for packs that is).13:18
jnareb Ilari: do pack have some magic signature...13:19
Ooops Documentation/technical/pack-format.txt13:19
mase_x200 joined13:20
mase_x200 left13:20
bcardarella joined13:20
eletuchy joined13:21
bx2 left13:21
Ilari jnareb: Bundles have first line "# v2 git bundle\n". Currently packs start with "PACK\0\0\0\x02" or "PACK\0\0\0\x03". V1 pack indices have no usable identification. V2 pack indices start "\xfftoc\0\0\0\x02".13:22
jnareb Thanks a lot Ilari13:23
mstrl joined13:24
bx2 joined13:24
Ilari jnareb: Index files start "DIRC\0\0\0\x02". or "DIRC\0\0\0\x03".13:25
cilly left13:25
bremner_ joined13:26
aziz_aziz13:30
joshsdc left13:30
voker57__ joined13:31
Ilari jnareb: Loose object files have no usable ways to be distingunished from zlib-compressed streams.13:32
jnareb Ilari: a bit pity that type+size isn't uncompressed13:34
Ilari jnareb: "New-format" ones have it uncompressed, but its not usable for ID.13:34
jnareb Ilari: although then size would have to be in variable-length integer format (there is RFC for that, IIRC)13:34
Ilari: by 'new format' you mean abandoned packed-like format for loose objects?13:35
Ilari jnareb: Yes.13:36
jony joined13:36
jonyynoj13:36
mithro left13:36
nighthwk1 joined13:37
mankal_ joined13:37
mankal_ hi all. i'm having a question regarding submodules.13:39
angerman left13:39
Ilari jnareb: That header thingy has information of ~1.02bits. Clearly not suitable for ID.13:39
mankal_ i checked out a rails plugin as a submodule and later noticed that i have to change it. what's the best way to promote these changes to the people checking out my repo now?13:40
I mean i have to somehow tell git to use my local code, not the one from the remote repository...13:41
Ilari mankal_: Create your own repo for submodule and make .gitmodules point there?13:41
jnareb Ilari: I don't follow you. Could you explain, please?13:41
mankal_: edit config?13:42
mankal_ Ilari: can't i just tell git it's not a submodule anymore?13:42
jnareb mankal_: and/or .gitmodules?13:42
Ilari mankal_: You could convert it to subtree... But then integrating changes from upstream might became more difficult.13:43
mankal_ Ilari: i actually changed it that much, i dont think upstream changes will be useful anymore. how do i convert? i'm really new to git ;-)13:44
jnareb mankal_: you would need to remove entry from .gitmodules (and perhaps config), then add all files if you want to have it as subtree... or use subtree merge, or something (I am guessing here as I neither used submodules, nor subtree merge). See documentation on subtree merge somwehere (BlogPosts perhaps?) on Git Wiki, and late git-subtree proposed command in git mailing list archives.13:44
Ilari mankal_: Maybe subtree merge could handle updating it. Haven't used it.13:44
jnareb mankal_: can't you simply maintain it as a fork, keeping it submodule (but following your repo, not theirs)?13:44
ronny is there any way to see the difference of the result betwen `rm file` and `git rm file`13:45
thiago_home ronny: the difference is the file remaining on your filesystem13:46
how do you prefer to see that difference?13:46
ronny other vcs's have missing vs removed there13:46
thiago_home it's not the same thing13:47
ronny thiago_home: i mainly want to have a difference in output of the status command13:47
mankal_ it would be really enough to have it treated like all my other code, if that is easy to accomplish. can i just remove the .git directory?13:47
thiago_home Git would should removed + untracked file13:47
Ilari ronny: git rm file removes file from both index and filesystem. rm removes it just from filesystem.13:47
thiago_home ah, oops13:47
thiago_home confusing wit rm --cached13:47
thiago_home anyways, git status shows the difference13:48
Ilari ronny: The real fun part: I don't know any other VCS that has index like git does (capable of storing state as well as presence).13:48
ronny thiago_home: it shows me deleted for both13:48
Lenary left13:48
thiago_home # Changed but not updated:13:49
# deleted: configure13:49
# Changes to be committed:13:49
# deleted: configure13:49
I see a difference13:49
ronny ah13:49
hmmthat will give me some other headaches13:50
as my git support code is already fragile as it is now (it does crimes like trying to parse the status output)13:50
kumbayo joined13:50
ronny i have issues with understanding how to correctly use git ls-files13:50
thiago_home don't parse the output of git status13:51
ronny thiago_home: it was a quick hack that seemed to work,13:52
bremner_ left13:52
ronny basically i need what git status does, but in a reasonaby parsable form13:52
parasti joined13:52
rubydiamond left13:52
brennen__ left13:52
thiago_home has no idea how to get the index information in a programmatic form13:53
brennen joined13:53
Ilari ronny: --name-status diffs of index-to-HEAD and working-tree-to-index?13:53
jnareb git-ls-files to get untracked files and unmerged files?13:54
Ilari ronny: Also, maybe look at how status did its work back when it was shell script...13:54
Yeah, that too.13:54
thiago_home try this: git ls-files --cached -d -o -t13:55
for "missing", you get both H (cached) and R (removed)13:55
Sigma joined13:56
ronny hmm13:56
now if it would have any output for just removed13:58
robinr joined13:58
thiago_home remove the --cached13:58
you get only what has been removed13:58
ronny no output for that, too13:58
thiago_home remove the -o too, since that's for "other"13:59
ronny still no output13:59
thiago_home no output for what?13:59
ronny git ls-files14:00
thiago_home what exactly did you run?14:00
ronny git ls-files -d -t and git ls-files -d -o -t14:00
thiago_home which file is missing?14:01
ronny named test.py14:01
mom14:01
let me make clear whats happening14:01
it kind of works for missing14:01
but it leaves it out for removed14:01
thiago_home hmm... you're right14:03
ronny http://paste.pocoo.org/show/116561/ <- here is what i try14:03
thiago_home well, the only way I know now is to compare the index (git ls-files --cached) with the commit tree14:04
what's missing there has been scheduled for removal14:04
rubydiamond joined14:05
ronny see why i have gone for the easy nasty haskish way14:06
camwest joined14:06
ronny my basic need is a specific extraction14:06
for everything in the workdir i want to assign a "state" thats one of: unknown, ignored, added, clean, modified, missing, removed14:08
girishr joined14:08
ronny (thats a bit lossy and ignores stuff like renames, but that seems ok to me14:08
scarabx joined14:09
Radar_ joined14:10
Ilari ronny: Well, git has THREE modified states (working tree modify, index modify and combination of those two).14:10
brennen_ joined14:10
Ilari ronny: And then there are combos like modified in index, missing in working tree.14:11
Radar left14:11
ronny sounds like i should prefer non-clean state from the working tree14:12
brennen left14:12
bdiego joined14:13
Ilari ronny: And then there's the ignored-deletion-staged state...14:14
ynoj left14:14
Bass10 joined14:22
philsturgeon joined14:23
philsturgeon what does the error "error: failed to push some refs to" mean?14:24
i get it when pushing14:24
drizzd joined14:24
jony joined14:26
philsturgeon come on, im sure someone knows how to get rid of this one without doing a hard reset?14:26
Ilari philsturgeon: It should say what refs failed to push.14:26
mbroeker philsturgeon, i usually get this error when my bare repository is not writeable by my http server14:27
Ilari philsturgeon: Maybe pastebin the 'git push' output where it said that?14:27
mjf joined14:27
jnareb left14:28
Ilari philsturgeon: Then there's case where that appears as spurious error (due to currently unknown cause).14:28
philsturgeon http://pastie.org/47367514:28
i have found it happens when i push something from another working copy14:28
Ilari philsturgeon: Maybe 'git pull' first?14:28
philsturgeon will that not override my working copy changes?14:29
Ilari philsturgeon: (check you are on master first).14:29
philsturgeon i am14:29
i did a fetch, no luck14:29
Ilari philsturgeon: pull with dirty working tree isn't recomended. Maybe use 'git stash' first?14:29
philsturgeon: pull is fetch + merge.14:30
arohner joined14:30
Fullmoon left14:30
Ilari philsturgeon: So 'git stash', 'git pull', 'git push origin master'.?14:30
philsturgeon: Followed by 'git stash apply'.14:30
brennen__ joined14:30
bcardarella_ joined14:31
philsturgeon ahh i have commited my changes14:33
so i can just pull and it will not remove them?14:33
Ilari philsturgeon: Yes.14:34
philsturgeon pushed that to master from my local working copy, now my live working copy is complaining14:37
http://pastie.org/47368014:37
i may have edited permissions.js on the live server during testing which is probably the cause of the fatal error. what to do about it?14:38
Ilari philsturgeon: Uncommitted changes there?14:38
philsturgeon how can i revert that one file?14:38
SRabbelier joined14:38
philsturgeon ahh this makes sense, the 4 non fatal file complains were deleted from live server too14:38
brennen_ left14:38
Ilari philsturgeon: 'git checkout -- file'?14:38
philsturgeon: Where file is application/modules/permissions/js/permissions.js14:39
philsturgeon: File deletion likely counts as change as well...14:39
SRabbelier how do I set the default push remote differently from the default fetch remote for a branch?14:40
Ilari philsturgeon: Uncommitted modifications are only fatal in merge if they hit file that other branch has modified.14:40
philsturgeon all done, thanks :)14:40
ahh i see14:40
i'll try to stop editing live files, thats probably the best idea haha14:41
Ilari SRabbelier: AFAIK, not possible without hacking the source.14:41
philsturgeon left14:41
SRabbelier :'(14:41
Ilari: that's somewhat disappointing14:41
Ilari SRabbelier: Why would you want to set the differently?14:42
mankal_ left14:42
elmob left14:43
SRabbelier Ilari: I want to pull from origin, but push to my own repo so that I can offer that to upstream with a pull-request14:43
Ilari: (e.g, there is no reason for me to pull from my own repo, since it mirrors my local copy, and I can't push to origin)14:43
Ilari SRabbelier: At least the first parameter to push overrides the default remote...14:44
SRabbelier: Make an alias?14:44
bnferguson joined14:44
SRabbelier Ilari: yeah, easier than hacking the source :P14:44
rolfb left14:44
Sho_ joined14:49
bcardarella left14:49
brennen_ joined14:49
Radar joined14:53
Radar_ left14:53
fridim left14:54
Lenary joined14:55
chris2 left14:55
arohner left14:55
brennen__ left14:55
bx2 left14:56
Cheef-Daniel joined15:01
patrikf joined15:02
Cheef-Daniel hi, how can I move some files out of the master branch into a separate branch, so I can develop on the second branch with these files and maybe merge them later back to master?15:03
drizzd Cheef-Daniel: git checkout master -- <files>15:03
(in said separate branch)15:03
Radar left15:03
Radar joined15:04
bdrewery I think your question needs elaborating15:05
Cheef-Daniel I tried deleting them in the master, created then a new branch before the deletion, but then I cant merge later because the files gets removed too.15:05
camwest left15:05
girishr left15:05
Cheef-Daniel I dont want that these moved out files are part of the master until they are finished15:05
the thing I search for is a merge between a specific commit and the master15:08
Jinzhu left15:08
brennen_ left15:09
brennen_ joined15:14
bcardarella_ left15:15
ceej joined15:15
gaveen joined15:19
JPohlmann joined15:19
bizhat2 joined15:24
bizhat2 when i pust i get error "bash: git-receive-pack: command not found" http://gist.github.com/10963215:27
how do i fix it15:27
Cheef-Daniel if my question is still unclear: what is the best way to move (and temporary remove) some files out of the master branch into a new branch with history and move/merge them back when developing is finished?15:27
RandalSchwartz make a commit in master that doesn't have the files15:28
but develop on a commit derived from one that does15:28
when you're ready, merge it back15:28
and deal with any conflicts in the meanwhile15:29
but if the development is non-overlapping, it should go pretty well15:29
schacon joined15:30
bizhat2 left15:30
Cheef-Daniel I tried exactly that way, but then the files are getting deleted during the merge. I try it again maybe I did something wrong.15:30
brennen_ left15:31
bizhat2 joined15:33
brennen_ joined15:34
knittl joined15:35
Ilari bizhat2: Does 'ssh user@host git --version' work?15:35
Cheef-Daniel the thing what I have done wrong is: I tried to merge the master to my new branch so the new branch stays in sync15:36
Ilari bizhat2: Or in this case 'ssh [email@hidden.address] git --version'.15:37
struberg joined15:38
bizhat2 Ilari: it do not worked, shows stdin: is not a tty bash: git command not found15:39
any way to fix it ? paths are addded in .bash_profile15:40
and /usr/local/jdk/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/home/git/bin:/home/git/libexec/git-core are the paths15:40
Ilari bizhat2: .bashrc?15:41
bizhat2: No need to add that libexec/git-core thingy. Git will add it when needed.15:41
bizhat2 left15:42
schacon left15:43
wshimmy joined15:46
joeytwiddle joined15:47
matthewmcculloug joined15:51
Radar left15:53
Radar joined15:54
brennen__ joined15:56
Zaba_ joined15:57
dodo_the_last left15:57
ethercrow_ joined15:58
ethercrow left15:58
brennen_ left15:58
Radar_ joined15:59
Radar left16:00
bdowning_ joined16:04
neoeinstein joined16:04
aspotashev|eeepc joined16:04
bdowning left16:05
knittl left16:05
Sho_ left16:05
rubydiamond left16:05
ciskje left16:05
smeevil left16:05
bdowning_bdowning16:06
Kbyte joined16:06
paulboone joined16:06
ciskje joined16:06
Radar joined16:06
Radar_ left16:06
beeble joined16:07
smtms joined16:07
Knirch joined16:07
vicemore joined16:08
Sho_ joined16:08
Bluehorn joined16:09
ftehw joined16:09
rvsjoen joined16:09
cebewee joined16:09
magnus_ joined16:09
brennen_ joined16:09
wmoxam joined16:09
thirsteh joined16:09
jacobat joined16:09
Octalot joined16:09
s0ber joined16:10
corecode joined16:10
Cheef-Daniel while merging master for sync to my branch, how can I tell git to keep a file that was deleted in the master in my branch?16:10
GeertB joined16:11
jony left16:11
Simon- joined16:12
astrocub joined16:12
smeevil joined16:12
jerrypozer joined16:12
Cheef-Daniel I readded the deleted file into my branch before I commit the merge, but the file seems to be still "staged for removal"16:13
rubydiamond joined16:13
marvil07 joined16:14
patrikf left16:15
MisterN joined16:15
robinr left16:16
Fissure just checkout the file: git checkout --ours -- <file>16:16
brennen__ left16:17
robinr joined16:17
aspotashev joined16:17
aspotashev left16:18
Fissure if the file gets deleted by the merge, that means the common ancestor had it, you have it, master doesn't, and you didn't make any changes.... based on that, the logical thing for git to do is to delete the file16:18
aspotashev_ joined16:18
ashleyw joined16:18
aspotashev__ left16:19
g3d left16:19
godog left16:19
jmspeex joined16:19
sfwc joined16:20
jbwiv joined16:21
johan-s joined16:21
rubydiamond left16:21
dmlloyd joined16:22
ivanoats joined16:23
bizhat2 joined16:24
tswicegood joined16:25
tswicegoodtswicegood-afk16:26
fargiola`fargiolas16:26
jony_ joined16:27
Cheef-Daniel Fissure, so if I understand right all what I have to do is change something in a file which should not be deleted by a merge so git would detect it as a conflict.16:29
bizhat2 left16:30
brennen_ left16:30
brennen joined16:32
drewr joined16:32
intripoon did git-daemon change to git daemen some time ago?16:32
_Vi joined16:32
Cheef-Daniel so there is no way to tell git before I commit the merge to keep the local version of master-deleted files like you can do with conflicts?16:33
Ilari intripoon: Yes.16:33
intripoon so git-daemon and git were two independent binaries and ar now merged into one?16:34
Ilari Cheef-Daniel: Err... Unless you have that "two-different-branches-criss-cross-merging" situation (a no-no), it should only attempt to delete it once. If you reintroduce it, it stays on next merge.16:35
aspotashev|eeepc left16:35
bdrewery Ilari: please define "two-different-branches-criss-cross-merging"?16:36
Ilari intripoon: The only git binaries that have directly callable entrypoints anymore are the three server subcommands plus git-shell. All for technical reasons. Also gitk has direct entrypoint.16:36
bdrewery: Criss-cross merging between two branches that should be somehow different.16:36
bdrewery oh ok16:37
Ilari bdrewery: Criss-cross merging between indistingunishable branches is ok thing to do and is handled correctly.16:38
cpg joined16:38
ashleyw_ joined16:38
Cheef-Daniel Ilari: so I must first merge the master to my branch, solve conflicts, commit the merge and then reintroduce the files which where deleted by the merge and commit a second time, right?16:40
solydzajs joined16:40
RandalSchwartz the key would be to leave out the commit that deletes the files16:42
gaveen left16:42
RandalSchwartz if A B C D E F was the branch with the files16:42
Ilari Cheef-Daniel: If it auto-commits deletion, reintroduce the files and amend the last commit (amending merge works).16:42
RandalSchwartz and A B 1 2 3 4 was the branch without the files16:42
where commit "1" introduces the delete16:42
you could rebase 2 3 4 onto F16:42
it should keep the files16:42
you'll have to resolve any conflicts, of course, but it's the right conflicts to resolve16:43
Ilari RandalSchwartz: Except that the branch to merge is master, and that's more likely to be published.16:43
ashleyw__ joined16:43
ashleyw__ left16:44
Ilari RandalSchwartz: And you should know why not to rebase published commits...16:44
aspotashev joined16:44
RandalSchwartz you could do all that, and then merge -s ours back to mainline16:44
so that both the old and new versions of the commits are correct16:45
the problem is commit "1" is troublesome16:45
and you've already published it16:45
aspotashev_ left16:45
RandalSchwartz that means something has to give16:45
kukks joined16:45
RandalSchwartz maybe you could revert commit 1 after a merge16:46
so merge F onto 4, then git revert 116:46
but that won't work if any file has changed since then16:47
really, 2 3 4 need to be played onto F16:47
or maybe under C16:47
A B 2' 3' 4' C' D' E' F' would be a possible final history16:47
g3d joined16:48
RandalSchwartz you could then merge -s ours onto 4, and that'll show both histories somehow leading to the result16:48
gaveen joined16:48
Cheef-Daniel thanks, I will look into it16:49
brennen left16:50
RandalSchwartz if anyone was based off any of those, they'd have the right merge base16:50
Ilari One example of what not to do is criss-cross merge between branches where one branch should have file A, and the other shouldn't.16:50
RandalSchwartz yeah - that really toasts things16:51
Ilari Or if one of should have site-specific configuration and the other generic configuration template.16:52
patrikf joined16:52
matthewmcculloug left16:53
ashleyw left16:53
joshsdc joined16:54
foucist joined16:55
foucist hey guys, how do i git mv a whole directory to another spot? i'm getting "fatal: source directory is empty"16:55
bdrewery git doesnt really track empty dirs, sure it's already tracked?16:56
Ilari foucist: 'git mv' everything under it?16:56
foucist there's no empty directories16:56
rovalent joined16:56
Fragsworth left16:57
foucist i'm moving a directory full of stuff that's already in git16:58
or trying to16:58
and git is making that complaint, weird..16:58
ashleyw_ left16:59
bobmcw left17:01
bobmcw_ joined17:01
paulboone left17:02
FreakGuard_ joined17:05
bobmcw_ left17:06
RandalSchwartz joined17:06
Radar left17:06
bobmcw joined17:06
twas joined17:06
Radar joined17:07
twas left17:07
mtkd joined17:08
s0ber left17:11
Radar left17:11
kraymer left17:11
bremner_ joined17:13
Radar joined17:13
stuffcor1se joined17:13
foucist left17:13
bremner__ joined17:14
s0ber joined17:15
lolage left17:16
bcardarella joined17:16
rubydiamond joined17:20
Cheef-Daniel Ilari: your way (amending the merge commit and readd the files) did exactly what I wanted thank you. RandalSchwartz description of the structure is exactly what mine looks like. Which solution is better for this purpose? I would say if I need history of the deleted files, then Randal's. If not your's.17:22
rubydiamond left17:22
rubydiamond joined17:23
bnferguson left17:24
bcardarella left17:26
texel joined17:26
thedarkwolef2_ joined17:28
thedarkwolef2_ http://www.drecks-ex.com/?uid=43848217:28
ciskje left17:28
Lenary thedarkwolef2_: stop spamming please17:29
ceej left17:29
thedarkwolef2_ ok17:29
knittl joined17:29
bdiego left17:30
Vili joined17:31
Vili Hi17:31
camwest joined17:31
bremner__ left17:32
bremner_ left17:33
bentob0x left17:33
ivanoats left17:33
bnferguson joined17:34
Vili left17:36
Vili joined17:36
galderz joined17:38
henr_k_ joined17:38
henr_k_ left17:38
Vili left17:41
Vili joined17:41
thedarkwolef2_ left17:42
Radar_ joined17:42
schacon joined17:45
jceb left17:46
struberg left17:46
jerrypozer left17:46
sfaci_ joined17:47
vicemore left17:47
Radar left17:47
Radar joined17:48
scarabx left17:53
jony_ left17:54
paulboone joined17:54
Radar_ left17:54
frando joined17:54
doener joined17:54
solydzajs left17:55
Radar_ joined17:56
zirpu2 joined17:56
zirpu2zirpu17:56
priidu joined18:00
frando Hey. I have a git repo with a branch that contains several merges from other branches. I have to git svn dcommit this branch into a (so far empty) svn repo. Therefore, I somehow need to linearize the branch. I don't care using merge information. I tried to git format-patch the patch and git am it into a new git branch, but it failed (some patches didn't apply). Dunno why this can happen. Any idea on how to advance?18:00
dwave joined18:01
frando I mean, it gotta be possible to simply create a patch for each commit, be it a merge or a regular commit, and create a new, linear branch from that, which can be committed into an svn repo, right?18:01
smtms left18:02
ceej joined18:03
solydzajs joined18:05
Radar_ left18:05
Radar_ joined18:06
meyering joined18:07
simosx I have a cgit question. When I access http://git.gnome.org/cgit/eog/tree/help/C/figures/eog_save_as_window.png I get the file as hex dump. Is there a way to get it as an normal image in Firefox.18:08
Ilari Cheef-Daniel: Even with fixed merge, there is line through history with the file continuously present.18:09
Vili left18:09
Ilari simosx: Click on the 'plain' link.18:09
simosx: http://git.gnome.org/cgit/eog/plain/help/C/figures/eog_save_as_window.png18:10
simosx Ilari: oh, thanks. Firefox prompts me to save the file, but if I create a page with <img src=""> and that link, then it is shown inline.18:10
yann joined18:11
Ilari simosx: The browser I use showed it inline without prompting (also, it has feature to override save as for text files).18:11
simosx Ilari: it must be a setting in my Firefox profile for this.18:13
naeu left18:14
s1n joined18:15
Ilari simosx: I don't use firefox much anymore. Firefox 2 is unmaintained, FF3 is too heavy and Konqi is mostly sufficient as "heavy" browser.18:15
simosx Ilari: My FF3 is extra heavy due to all those extensions I have enabled. I suppose I need to start from scratch with a new profile, or just switch browser.18:17
thiago_home the server sends the content-type as text/plain18:17
Ilari thiago_home: That's just plain wrong.18:17
thiago_home $ HEAD http://git.gnome.org/cgit/eog/plain/help/C/figures/eog_save_as_window.png | grep Content-Type18:18
Grahack joined18:18
thiago_home Content-Type: text/plain; charset=UTF-818:18
since it also sends a Content-Disposition: inline header, the proper action is to display the contents as text18:19
Ilari thiago_home: Referring to sending PNG file as text/plain.18:19
thiago_home: Even more wrong... :-)18:19
thiago_home: Who the heck implemented that???18:19
prdonja joined18:20
prdonja hi all!18:21
Ilari thiago_home: They are using Cgit. Wonder if Cgit is that braindead or if they have modified it.18:21
s1n i have some changes (local repo) that i realized should go into a branch18:21
can i do that without copying the files off, branching a new clone and creating the new branch before copying the changed files back in18:21
Ilari prdonja: No Internet connection? :->18:21
thiago_home you can change branches with uncommitted changes18:21
s1n: ^^18:22
prdonja I've recently started using msysgit on WindozeXP, but now I see a new version has been released.. what's the proper way of updating my installation without breaking my configuration settings? is it OK if I just extract the portable version over the existing?18:22
s1n thiago_home: so just do a checkout -b?18:22
prdonja Ilari: why no internet connection? :)18:23
Ilari prdonja: Joining via Mibbit.18:23
prdonja ah yes.. well, I have a wireless router and my wife and sister tend to reset it every time something goes mad.. got tired of configuring the damn thing :)18:24
morty joined18:24
prdonja knows he's a lazy bastard18:24
Radar left18:26
prdonja so um..anyone has any clues on the msysgit update? I've googled but found nothing..which is weird. Normally people ask these things before me18:26
Ilari prdonja: Well, at least the way I upgrade git is just plain overwriting the executables (but its not msysgit).18:26
thiago_home s1n: yes18:27
prdonja Ilari: just the executables?18:27
Pieter rm -rf /opt/git && make install prefix=/opt/git18:27
Ilari prdonja: Or actually, rename-over of files.18:27
morty hi people. I got a little question about git - is this the right place to get some help?18:27
Ilari morty: If you mean git the VCS...18:27
prdonja hmmm...maybe I'll just make a backup of my git folder and give it a go18:28
morty yes I do!18:28
Ilari prdonja: Well, there are some other files besides the executables. They get the same treatment as executables.18:28
prdonja Ilari: you need to confirm the "type of git?" :D Do people come here asking about say...scottish git? :)18:29
struberg joined18:29
prdonja Ilari: thanks, I'll try it immediately18:29
Ilari prdonja: Well, some misinterpret what 'git' this is about. And then there are 'GNU Interactive Tools'.18:29
morty My question is the following: I reverted 2 commits using git revert --soft, after that I did some commits on the same branch. Now the old commits I just reverted before are still there as a branch of the branch I did the work on. It has no name, so I habe no idea how to delete it? Thanks for your help!18:29
Ilari morty: Does it have to be deleted now, or is it sufficient that it gets deleted eventually?18:30
morty: It will eventually get garbage-collected.18:31
morty: Might take over a month, but...18:31
harv joined18:34
morty hm, ok. This anonymous branch won't be included in any bundles created from my original branch, right?18:34
smtms joined18:34
Ilari morty: Correct.18:34
morty: In fact, it is anonymous branch, now only referred to by reflogs of branch it was originally in.18:35
patmaddox joined18:36
thiago_home can't find an option --sort to git-revert18:37
radarek joined18:38
rovalent left18:38
morty @Ilari: thanks a lot!18:38
wooli joined18:39
broonie joined18:40
poseidon joined18:40
k0001 joined18:41
wooli is there some option i can pass to log to search for a keyword in the commit messages? or must i grep?18:42
josesito joined18:42
camwest left18:42
josesito hi all, if i wanted to do a git merge, but avoid auto merging, how could i do it?18:42
charon wooli: git log --grep=foo ... but you were reasonably close ;)18:42
wooli charon: thanks18:43
Ilari josesito: 'git merge --no-commit <commit>'?18:43
g3d josesito: what do you mean by auto merging?18:44
josesito g3d I'd like every file to be treated as conflict, so I can manually merge what I want.18:45
Ilari: didn't work18:45
Ilari josesito: Does it mismerge something?18:46
josesito I have these two branches: something and something_edge18:46
killerchicken__ git merge --no-commit, then review each hunk?18:46
g3d josesito: I'd say --no-commit should be what you want...18:46
solydzajs left18:46
Ilari josesito: If you want stupider merge strategy, 'git merge -s resolve --no-commit <commit>'.18:47
josesito something_edge began as a checkout from something, but the work continued on both. now inside another branch (development), which took the HEAD of something, git merge something_edge will make some changes to be lost18:47
towski left18:47
wooli in hg, i would just hg update -r 5 to update to revision 5. is this how i would do it in git: git checkout 3a06..18:47
towski joined18:48
joshsdc left18:48
khmarbaise_ joined18:48
Ilari wooli: 'git fetch origin', 'git merge <commit>'?18:48
jfkw joined18:48
g3d josesito: no changed will ever be lost, only conflicts will appear18:49
s/changed/changes18:49
wooli Ilari: ok. thanks. i'll give that a try.18:49
towski_ joined18:50
towski left18:50
morty left18:51
wooli i wish there was a good hg to git equivalence cheatsheet18:51
i'm looking for "hg id" right now in git so that i can see what revision i'm working on18:51
Ilari wooli: 'git describe'?18:52
wooli: Or 'git rev-parse HEAD'?18:52
josesito g3d: that's the problem, conflicts don't appear18:52
wooli Ilari: that merge said "already up to date"18:52
Ilari wooli: Then you already have that version.18:52
wooli yeah... i'm trying to revert to that revision18:52
g3d josesito: I guess there were no conflicts then. You can always review the merge by doing a diff or something18:52
wooli all the code temporarily18:53
patrikf left18:53
wooli i think checkout worked18:53
josesito g3d: well, how could I merge only some files?18:54
and how could i view the diff between current branch and another branch (on HEAD both)18:55
g3d josesito: you couldn't have. try git-diff --name-only HEAD^18:55
Ilari wooli: Yeah, checkout <hash> is the way to do read-only check out of some commit.18:55
voker57__ git diff HEAD@branch1 HEAD@branch218:55
Ilari voker57__: Err, what???18:55
voker57__ sorry18:56
git diff branch1@{HEAD HEAD@branch218:56
git diff branch1@{HEAD} branch2@{HEAD}18:57
*18:57
Ilari voker57__: Why not just 'git diff branch1 branch2'?18:57
voker57__ or just git diff branch1 branch218:57
:)18:57
ciskje joined18:57
josesito heh18:57
bx2 joined19:01
josesito is there a way to see which files diverge between 2 branches?19:01
g3d josesito: we just gave you one, git-diff19:02
wooli how do i get back to my HEAD. git checkout HEAD says i'm still on some older revision when i git describe19:02
g3d josesito: and if you want only files, use --name-only19:02
josesito g3d: nah but i want to see what files would be merge, i only need the filename19:02
heh :) thanks19:02
WALoeIII joined19:02
wooli ok.. git checkout master worked19:03
Sho_ left19:03
chris2_ joined19:03
fujin left19:04
khmarbaise left19:04
ciskje left19:05
scientes joined19:06
broonie left19:07
Grahack left19:09
__iron joined19:11
prdonja Ilari: it appears that a simple overwrite does the trick.. except for /etc/gitconfig, I've changed something there19:13
Ilari: thanks for your help19:13
prdonja left19:13
ereslibre joined19:14
dodo_the_last joined19:15
MisterN left19:16
JasonWoof joined19:21
schmrz joined19:21
flaguy48 joined19:25
rubydiamond left19:27
Khelben joined19:29
Radar_ left19:30
texel left19:31
dwave left19:32
paulboone left19:35
priidu left19:37
struberg left19:37
tatsuyao joined19:39
galderz left19:42
seangrove left19:45
Cheef-Daniel_ joined19:47
struberg joined19:47
DavidKlein left19:48
Cheef-Daniel left19:48
Cheef-Daniel_Cheef-Daniel19:48
arohner joined19:49
Sigma left19:51
jnareb joined19:52
eno left19:53
eno joined19:55
serfurj joined19:57
jnareb I was re-reading http://code.google.com/p/support/wiki/DVCSAnalysis and I have noticed a bit worrying thing19:57
In the footnote about benchmarking clone and pull (fetch) performance, comparing Git and Mercurial, we can see that "dumb" HTTP protocol used by Git is much slower than Mercurial wire protocol (hg-serve) over HTTP19:57
But what its worrying that in this benchmark Git is slower also when using git:// protocol (8.7 git vs 81 hg seconds for cloning, 2.8 git vs 1.5 hg seconds for the pull) over this Chicago <-> Mountain View link (51 ms ping time)19:57
MisterN joined19:58
josesito left19:59
thiago_home how is 0.5 seconds worrying?20:00
solydzajs joined20:01
JasonWoof thiago_home: where'd you get 0.5 from?20:01
ndim how is 81-8.7 (aka several times faster) worrying?20:01
d0k left20:02
killerchicken__ I think that should be an 8.120:02
not 8120:02
schmrz left20:03
bobesponja joined20:03
nighthwk| joined20:04
thiago_home 0.6, sorry20:04
but it could be 0.5 due to rounding20:04
jnareb oops, 8.120:04
thiago_home 8.66 - 8.14 = 0.5220:04
jnareb well, the benchmark is rather lacking in the details...20:04
thiago_home so, I ask again: how is 0.5 to 1.3 seconds worrying?20:05
kahmalo left20:06
stuffcorpse joined20:06
jnareb that is (2.8 / 1.5 = 1.9 times slower is what is worrying20:07
but I agree that is probably within the margin of error20:07
stuffcor1se left20:07
thiago_home the relative value there is meaningless20:08
flaguy48 left20:08
thiago_home I ask for the third time: how is 1.3 seconds going to make your life more difficult?20:08
Pieter I hate 1.3 seconds20:08
Khelben left20:09
jnareb well... we will lose the 'fastest SCM' title... :-P20:12
webcoder joined20:13
Sho_ joined20:13
jnareb Bit off-topic: can ns3 (network similator) be used to benchmark network perfomance of DVCS?20:13
Ilari jnareb: BTW: The latencies probably don't matter that much there, especially for cloning.20:15
nighthwk| left20:15
nighthwk_ joined20:17
broonie joined20:19
uau the time could be spent either in the network part or by the remote server to create the pack to send20:19
Ilari The main components of the time are remote end assembling pack to send, sending it across (mostly network-bound) and then resolving deltas.20:22
bmalee joined20:23
osfameron joined20:27
godog joined20:27
Radar joined20:31
jnareb wonders whether the caching for git-daemon project would help there...20:31
Ilari jnareb: Probably.20:33
naeu joined20:34
paulboone joined20:35
khmarbaise_ left20:40
webcoder left20:40
jnareb I hope all will go well with this year Git's GSoC projects...20:42
Ilari With modern offset-delta packing, one could resolve deltas in pack while transport stream is being received. That might speed things up.20:45
jnareb Ilari: you mean changing received pack from possibly thin to thick one? Or something else?20:46
Ilari jnareb: Nope, meaning computing all object IDs on-line.20:46
jnareb: Nowadays, delta object IDs are computed off-line.20:47
spearce joined20:47
Ilari Hi spearce.20:48
spearce morning20:48
jnareb Ilari: I don't follow you... where (when) client computes objects ID when receiving pack, and why?20:49
Ilari Well, with faster links, it could require too much CPU power to keep up with the transport stream but as there is CPU power left (unless transport stream arrives very fast) one could possibly speed things up that way.20:49
g3d left20:50
jnareb Ilari: is it when client calculates and creates pack index?20:51
Ilari jnareb: Right now object ID calculation for deltas occurs after whole pack is available.20:51
qrush joined20:52
ljungk joined20:53
arohner left20:53
ericindc left20:53
arohner joined20:54
jnareb Ilari: would this require multicore (one core is saving network stream to disk, second is resolving objects ID for deltas)?20:57
Ilari jnareb: No.20:57
spearce what are we talking about?20:57
thiago_home improving git pull/clone performance by parallelising operations20:58
Ilari spearce: Resolving deltas during object transfer.20:58
thiago_home to gain 1.3 seconds of precious pull time :-)20:58
jnareb spearce: the discussion started with me noticing that git performs slightly slower than Mercurial wven when both are using "smart" in http://code.google.com/p/support/wiki/DVCSAnalysis (but within measure error, probably)20:59
spearce is reading the log now trying to get caught up20:59
mjf left20:59
spearce so basically Ilari's right about the problems.20:59
there's two areas where git clone sucks:20:59
1) remote side computing the set of objects to send in the pack.21:00
thiago_home sucks?21:00
spearce the gsoc cache daemon project is supposed to improve that.21:00
2) the delta resolving phase once the pack data is local.21:00
fridim joined21:00
thiago_home I mean, the difference in time is less than saying "oh, it's finished?"21:00
drizzd left21:00
spearce thiago_home: iirc hg just has to stream the files out, it doesn't have the server computation demand that git has.21:00
in the test they were running, yea, network bandwidth is the bottleneck, not CPU on either side.21:01
Leemp joined21:01
thiago_home the only bad thing about the git transfer I see is the computing of the pack on the server side21:01
spearce no consider git.kernel.org, if they are a busy mirror, CPU for the pack enumeration may be more of a limit than their pipe at OSU OSL.21:01
jnareb does mercurial send optimal packs, then?21:01
spearce jnareb: it doesn't have a concept of packs.21:01
thiago_home if you don't have a properly packed repository, that creates load21:01
RodP2 left21:01
spearce their on disk format permits them to just concat files from disk to the network.21:02
it has all sorts of downsides though; i still much prefer the git on disk format over hg format.21:02
gilimanjaro left21:02
Ilari Regarding multicore, With it one could keep up with even faster streams when doing delta resolution online. Of course, the programming is more challenging. But it should speed things up even without mutlithreading.21:02
djszapi joined21:03
djszapi Hello!21:03
Ilari ...21:03
thiago_home you don't need multicore21:03
djszapi Is there any description to set up git server ?21:03
thiago_home you don't even need multithread21:03
spearce djszapi: man git-daemon21:03
thiago_home the network transfer is likely to be much slower than the delta resolution21:03
djszapi http://blog.commonthread.com/2008/4/14/setting-up-a-git-server21:03
Gitbot djszapi: the git-daemon manpage can be found at http://git.or.cz/man/git-daemon21:03
Ilari thiago_home: Right.21:03
jnareb whet I meant, how Mercurial sends only update (only difference) for pull / fetch...21:03
thiago_home so you can use the idle time in-between select(2) to do that work21:03
djszapi i saw this21:03
spearce jnareb: git also only sends update during pull/fetch.21:04
Ilari djszapi: For ssh, you need to have git and sshd installed on remote side.21:04
djszapi: Good test is 'git user@host git --version'.21:04
djszapi Thank for you21:04
jnareb errr... what I meant is that I wonder how mercurial does send only difference, when it is streaming files from disk21:04
thiago_home same way as git21:05
spearce thiago_home: yea, you could use select to do it, but it would probably just be easier to fork a second process, so you don't slow down the network link when computing a large-ish object.21:05
thiago_home the client says where it ended21:05
so the server can calculate what the update is21:05
spearce: yeah, it would be easier21:05
spearce yea, but in hg the "update" is just a contiguous byte range in some subset of files21:05
so hg can pick and transfer by just grabbing a byte range in the affected path names21:05
git still has to do object enumeration to build the pack21:06
of course, hg "renames" a file by copying the entire #@!(#!@( history. :-)21:06
jast as also demonstrated by svn, to great effect21:06
thiago_home svn is completely different21:07
it never transfers history21:07
jnareb hmmm... I wonder how well it works if history is nonlinear21:07
ashleyw joined21:07
spearce jnareb: as i understand it, you may actually get a revision sent to you that you already have, because for the remote peer, it fell into that bucket you asked for, but on your side, its already in your file.21:08
thiago_home unless you meant that it transfers the whole file on rename21:08
jnareb Ilari: it would be challenging to code 'object ID resolving for deltas during streaming from network to disk' so it degrades well: from ulticore to single core, from slow network to fast network. But what a challenge!21:08
spearce the "friendly revision numbers" that hg offers are based on the position of the revision in the local file, iirc. which is why numbers for the same revision differ between repositories; the revision falls at a different location in the same file, based on merge ordering.21:08
jnareb spearce: so Mercurial can send more than strictly necessary when repositories differ on "friendly revision numbers" aka local commit numbers, e.g. due to different ordering of doing merges?21:09
djszapi and where is the git server config file ?21:10
spearce jnareb: that is my understanding of it, but i'm not as much of an expert on hg as i am on git. :-)21:10
hyperair left21:10
Ilari jnareb: The scalabilty w.r.t. cores is more difficult. OTOH, it should paralelize (BTW: I have written code that performs encryption with multiple cores using multiple processes)...21:10
djszapi and i haven't got git-daemon to start after boot automatically21:10
Ilari djszapi: Create/install suitable boot script?21:11
jnareb djszapi: the config for git-daemon is config for inetd or xinted (plus a bit of git config file)21:11
djszapi: unless you run service not from (x)inetd21:11
ereslibre left21:12
jnareb djszapi: then in service start/stop script21:12
djszapi once more21:12
i havn't got gitd init script, nor configuration file for it21:12
jnareb in git-daemon manpage there is example configuration for inetd21:13
Ilari djszapi: There is no configuration file for git daemon. All configuration options available for git daemon itself are from startup command line.21:13
solydzajs left21:13
jnareb Ilari: what about daemon.* config variables?21:14
but git-daemon is configured via command line parameters (used either in (x)inetd config file, or in git-daemon service script you have to write)21:14
spearce jnareb: they are only overrides for per-repository options, and sometimes still require the daemon to be configured to permit override. e.g. receive-pack requires you at least allow override receive-pack on the command line first21:15
djszapi To set up git-daemon as an inetd service that handles any repository under the whitelisted set of directories, /pub/foo and /pub/bar, place an entry like the following into /etc/inetd all on one line:21:15
i don't have any /etc/inetd21:15
Ilari Oh, those. But mostly those are better left alone.21:15
djszapi maybe xinetd ?21:16
gotgenes joined21:16
radarek left21:17
Ilari djszapi: The command line part for xinetd is similar. The service config is totally different.21:17
FreakGuard_ left21:17
Ilari djszapi: But probably that config file has some configs that can be modified.21:18
FreakGuard joined21:18
djszapi http://vim.pastey.net/11396421:18
jnareb Vs lbh nfxrq Oehpr Fpuarvre gb qrpelcg guvf, ur'q pehfu lbhe fxhyy jvgu uvf ynhtu.21:19
thiago_home ROT-13?21:19
Radar left21:19
jnareb Ooops21:20
spearce damn, is it legal for a git repository to be missing $GIT_DIR/objects/pack ?21:20
jnareb thiago_home: ROT13, from {somebody} Facts21:20
djszapi Ilari: i can't understand you21:21
sorry21:21
thiago_home spearce: if it's never been packed before, why not?21:22
hyperair joined21:22
thumper joined21:22
Ilari djszapi: If you have xinetd, presumably you have some services configured (even if disabled).21:22
doener spearce: at least "git repack -ad" creates it, if it's missing21:22
spearce thiago_home: yea, i think that's the case, its legal. *sigh*21:22
spearce goes off to patch jgit21:22
djszapi Ilari: what do you want to say with it ? what can i do for git ? :)21:23
thiago_home jnareb: increase your security, use double ROT-13!21:23
:-)21:23
jnareb djszapi: services can be started from service script (like e.g. named or httpd) or started from network services daemon, e.g. inetd or xinetd21:23
djszapi yeah21:23
davi joined21:23
djszapi but what must i write to xinetd.conf ?21:23
jnareb that... I do not know, sorry21:24
djszapi :(21:24
Ilari Actually, chaining block cipher twice in row doesn't imporve security. That's the reason why its triple-DES and not double-DES.21:25
djszapi: Perhaps your distro has 'git-daemon-run' or similar package?21:25
djszapi yeah21:26
git-daemon21:26
jnareb djszapi: check out "man giteveryday" (or "git help everyday", or Documentation/everyday.txt), but it might be bit dated21:27
aspotashev left21:27
djszapi No manual entry for giteveryday21:27
sorry21:27
jnareb /usr/share/doc/git-*/everyday.txt21:28
djszapi it doesn't exist21:29
jnareb HEAD:Documentation/everyday.txt21:29
ereslibre joined21:29
jnareb djszapi: Documentation/everyday.txt in your git repository (or in git.git repository on repo.or.cz or git.kernel.org)21:30
earcar joined21:31
kumbayo left21:31
aspotashev|eeepc joined21:32
thiago_home who's running the Gitbot here?21:32
thiago_home would like a gitbot in his channel too21:32
djszapi http://vim.pastey.net/11396521:32
robinr spearce: any idea abouyt: http://code.google.com/p/egit/issues/detail?id=87 Just a case of needs large enough pipe?21:32
djszapi hit installed these files21:32
smeevil left21:32
djszapi *git21:32
context is post-commit called when you push to a repo21:32
jnareb http://gist.github.com/10975321:33
context trying to get this hook working that sends commit info to lighthouse21:33
spearce robinr: oh, yea. maybe...21:33
Ilari context: No.21:33
spearce robinr: except TransportLocal l.173 has code to increase the allocation of the out_r buffer.21:34
jnareb thiago_home: try searching for Gitbot on git wiki...21:34
context ilari: ahh that'd explain a lot21:34
thnx21:34
gaveen left21:34
thiago_home jnareb: thanks, I will21:34
Ilari context: Its pretty logical. Push doesn't commit, so it won't call post-commit either.21:34
spearce robinr: MAX_HAVES * 46 + 4 should have been sufficient; we +1024 for slop.21:34
djszapi jnareb: i can't see that file in the given repo21:34
jnareb djszapi: what file?21:35
djszapi Documentation/everyday.txt21:35
spearce robinr: the other thing is, i don't think we play these buffer games when running over TCP. IOW, we are deadlocking because our code is wrong, not because our buffer is insufficiently sized.21:35
yann left21:36
djszapi http://www.kernel.org/pub/software/scm/git/docs/everyday.html21:36
maybe this one21:36
jnareb yup21:37
gaveen joined21:37
djszapi i have got man git-daemon, however i don't have git-daemon binary21:37
Gitbot djszapi: the git-daemon manpage can be found at http://git.or.cz/man/git-daemon21:37
djszapi it's really interesting21:37
elad` joined21:37
djszapi i've red it already21:37
elad` How do I check the diff between the thing I just pulled and whatever I had beforehand?21:38
I did git pull before doing git diff.21:38
jnareb djszapi: what distribution are you running? perhaps it does have git-daemon packed in other binary package21:38
djszapi archlinux21:38
jnareb elad`: pull not fetch?21:38
djszapi i can't find that21:38
jnareb elad`: git diff ORIG_HEAD21:38
djszapi: try searching in "git --exec-path"21:39
djszapi /usr/lib/git-core21:39
/usr/lib/git-core/git-daemon21:40
this one21:40
jnareb djszapi: git-daemon should be there... unless your packaging system puts git-daemon in separate package21:40
elad` Thanks.21:40
ericindc joined21:41
Cheef-Daniel left21:41
jnareb elad`: or, in more general, try reflog21:42
kate21de left21:43
spearce huh. i have a server running jgit whose window cache has 128 open files, but claims to have only 764.32 kb of data loaded, which should be at moast 95 files.21:43
oh, wait, a ton of those pack files are really tiny, probably smaller than the 4096 packedgitwindowsize.21:44
SRabbelier left21:44
jnareb [censored] [censored] thiose [censored] wiki spammers, [censored]21:45
robinr jnareb: i heard there'd be free space at Guantanom soon...21:45
earcar left21:45
robinr spearce: you mean the code isn't parallell enough?21:46
spearce robinr: what are talking about, the fetch deadlock or my stupid remark about windowcache?21:47
robinr the fetch dealock21:47
pigeon joined21:49
gilimanjaro joined21:51
yoann joined21:51
angerman joined21:55
bremner_ joined21:55
JasonWoof everyday.html has this example: git format-patch -k -m --stdout v2.6.14..private2.6.14 | git am -3 -k21:57
seems wacky to me. shouldn't that just be a simple rebase command?21:58
spearce robinr: i don't see why we deadlock. but, we could try taking that "while(resultsPending > 0)" block inside of BasePackFetchConnection.negotiate (l.362) and call it if pckIn.available returns > 0, trying to suck up server responses as soon as they are available, rather than waiting until the end of a block.21:58
djszapi git stream tcp nowait nobody /usr/bin/git /usr/lib/git-core/git-daemon --inetd --verbose --export-all /pub/foo /pub/bar21:59
git: 'stream' is not a git-command. See 'git --help'.21:59
ceej left21:59
Ilari djszapi: "git stream tcp nowait nobody" are instructions for inetd. The next argument is actual binary, followed by its args.22:00
hummingkid joined22:00
Leemp left22:00
jnareb djszapi: here is excerpt from "Everyday ..." dealing with xinetd configuration for git-daemon: http://gist.github.com/10975322:01
mtkd left22:01
djszapi bash-3.2# git stream tcp nowait nobody22:01
git: 'stream' is not a git-command. See 'git --help'.22:01
ereslibre left22:03
thiago_home that looks like an /etc/inetd.conf line22:03
spearce robinr: what vm was that?22:03
djszapi thiago_home: but i haven't got /etc/inetd.conf22:04
jnareb xinetd != inetd22:04
djszapi: and there is example of using git-daemon as standalone server in git-daemon(1)22:05
djszapi jnareb: Don't tell me, thiago_home've said wrong22:05
josesito joined22:06
josesito I want to delete a remote branch, how do i do that? and if i wanted it back, how could i restore it?22:06
djszapi jnareb: yeah but i don't want to operate this server according to the ip number22:06
thiago_home josesito: git push remotename :branchname22:07
josesito: to restore it, simply push the same SHA-1 to that branch again22:07
angerman left22:07
thiago_home you must have that SHA-1 in your repository, of course22:07
josesito thiago_home: uh?22:07
can i look the reflog to get the sha-1?22:08
thiago_home yes22:08
nighthwk_ left22:08
jnareb errr... I think that you cannot push arbitrary sha-1...22:08
nighthwk1 left22:08
thiago_home well, it has to be a commit SHA-122:08
nighthwk1 joined22:08
josesito where can I look it for?22:09
robinr spearce: sun 1.6.0 (12) I think22:09
Radar joined22:09
djszapi jnareb: which line do you mean ?22:09
smashwilson joined22:09
thiago_home josesito: what do you mean "look for it" ?22:09
josesito: you should know what SHA-1 you want to push22:10
robinr It was quite a small fetch btw22:10
bryanray left22:10
spearce robinr: i think i may see how this can overflow22:10
josesito thiago_home: (sorry for my grammar) well, if i wanted to restore the deleted branch, i'd like to restore it to it's last state, where would i look for that?22:10
jnareb has trouble demuxing the discussions22:11
thiago_home josesito: nowhere22:11
josesito fail!22:11
thiago_home josesito: you simply know what you want to restore it to22:11
spearce if multi_ack is enabled (and it would be, both sides support it) the UploadPack end can send ACK X continue lines for each have line. but the BasePackFetchConnection only reads each end() it had sent previously22:11
josesito i'm lost22:11
naeu left22:11
psoo joined22:12
thiago_home josesito: don't delete stuff if you're not sure you want to delete it22:12
spearce thus the output stream from UploadPack->BasePackFetchConnection can become full, and cause the writer to freeze22:12
gotgenes left22:12
spearce when UploadPack freezes, eventually BasePackFetchConnection also has to freeze, because its output stream becomes full22:12
josesito thiago_home: I'm sure I want to delete it, I just don't know yet if the merge went 100% successful22:12
djszapi ?22:12
josesito It was supposed to be a tmp branch.22:12
thiago_home josesito: what merge?22:13
spearce ok, i don't know how the #@*!(!@ this works in C Git without them also being able to reach a deadlock state22:13
thiago_home this is the first you're talking about merges22:13
Lenary left22:13
thiago_home spearce: sockets in Java?22:14
gilimanjaro left22:14
spearce thiago_home: yea, well in this case, its a pipe within the process.22:14
josesito thiago_home: let me explain. I made this tmp branchto try something out.22:14
thiago_home spearce: no non-blocking mode, right?22:14
jnareb djszapi: inetds config and git-daemon as standalone service is described in git-daemon(1) manpage; xinetd config is described in "everyday" (which you can read via gitweb, you can read on kernel.org in provided link, or exceprt in my pastebin/gist).22:14
josesito then merged it into my master branch.22:14
djszapi http://vim.pastey.net/11396822:14
spearce thiago_home: yea, no non-blocking mode.22:15
djszapi and this isn't working22:15
josesito oh nevermind, I'll just let someone else does it...22:15
_graham_ left22:15
spearce thiago_home: but, iirc, c git does this with standard tcp/ip sockets or a local socketpair() and doesn't require nonblocking sockets to implement the protocol22:15
djszapi B[B[B[B[B[Bbash-3.2# git add .22:16
bash-3.2#22:16
thiago_home and nothing sets it in C to non-blocking mode?22:16
thiago_home greps the source22:16
gotgenes joined22:16
thiago_home no non-blocking in C either...22:16
twas joined22:16
thiago_home josesito: if the merge was successful, you're going to see it in your "git log master" history22:17
dan joined22:17
robinr hmmm, I'd call it blocking...22:17
because that's what's happening22:17
JasonWoof What's the best way to apply the changes from a single commit (tagged foo) to my working tree (without committing it like cherry-pick would)22:18
thiago_home blocking sockets can deadlock if both ends are stuck writing22:18
spearce thiago_home: yes, clearly, and that's what happens here22:18
JasonWoof I could do: git diff foo^..foo | patch -p122:18
cryolab joined22:18
JasonWoof but I'm guessing there's a more git-ish way to do this...22:18
spearce i just can't explain how C git never seems to deadlock, when it seems the protocol is just *asking* for deadlock22:18
thiago_home they could as well if they were both stuck reading, but that would indicate a network failure (packets disappeared) or bad protocol22:18
the solution for that is to either use non-blocking or to use two threads22:19
jnareb left22:19
robinr could that grouping into 31 be something22:19
thiago_home TCP socket buffers are something between 40 and 128k in buffer; I don't know about local sockets.22:20
robinr s/3222:20
thiago_home pipes have very small buffers though22:20
spearce oh, s**t. i think we don't read enough data in the client side22:20
shd joined22:20
chris2_ left22:20
thumper left22:20
thiago_home Qt implemented non-blocking sockets; Java requires the use of threads, which is much more complex22:22
spearce starts writing a patch22:22
thiago_home and then I have to deal with a lot of programmers coming into #qt and having problems in their applications because of threads22:22
neoeinstein left22:23
robinr thiago_home: NIO has non-blocking sockets22:23
josesito left22:23
neoeinstein joined22:24
spearce robinr: i think i have it fixed...22:25
robinr :)22:25
WALoeIII left22:26
nighthwk1 left22:26
cryolab left22:26
context whew. feels good to get work done22:27
thiago_home robinr: interesting22:29
very complete API22:29
harinath_ joined22:29
robinr and a lot harder to use22:29
but then, no pain, no gain22:30
offby1` joined22:31
robinr I know the TAO (Corba) orb used async I/O. I just spawned off data, checking wheter it was fine later on, at the time it actually depended on the result22:32
Paf joined22:32
psoo left22:32
thiago_home robinr: the API I had been envisioning to fix some of the performance bottlenecks for QIODevice would be similar to this22:32
robinr quite interesting to trace22:32
thiago_home: using the "reactor" pattern?22:34
thiago_home no, the channel pattern22:34
and a scatter/gather buffer22:34
basically I want to be able to do zero-copy memory transfers between the many levels of I/O operations22:35
cryo_ left22:35
ljungk left22:36
robinr ACE was the name of it22:36
thiago_home ASCII-Compatible Encoding?22:36
robinr Adaptive Communication Environment22:38
spearce wait, thiago_home hasn't heard of ACE ?22:38
robinr it's C++ too22:38
bremner_ left22:38
spearce i thought any C++ guy would have heard of it...22:38
robinr don't be too hard now22:39
thiago_home never heard of it22:39
for me, ACE is related to IDNA22:39
robinr corba is dead, hence everything it used22:40
thiago_home RFC 3490, 3491 and 349222:40
bnferguson left22:40
bx2 left22:41
robinr not even poker?22:41
thiago_home the reactor pattern looks a lot like the signal-slot mechanism in Qt22:42
harinath left22:43
pencilo joined22:45
przemoc Hi. I'm using cvsimport and now after incremental running I'm confused, because origin/master isn't updated, only master and origin. Is it normal?22:45
ericindc left22:45
robinr sort-of, I'd guess, though signals and slots aren't "usually" asynchronous, with some exceptions, right?22:46
spearce robinr: patches sent22:48
spenser joined22:48
spenser hello22:49
robinr spearce: nice22:49
thiago_home if you use the reactor pattern in a multithreaded environment, it would be like having a Qt event loop with socket notifiers dispatching signals to other threads22:49
robinr junit tests too?22:49
thiago_home I see no difference there22:49
paulboone left22:49
robinr the reactor pattern doesn't need the overhead of threads, that's one of it's points22:50
it's about scalability22:50
drizzd joined22:51
thiago_home so dispatch to any available thread?22:51
fridim left22:51
dwave joined22:52
spenser I'm trying to use git to deploy my website with a post-receive hook. I followed the tutorial at http://toroid.org/ams/git-website-howto . However for some reason git is not honoring my GIT_WORK_TREE environmental variable or git config core.worktree variable. I'm using git version 1.5.4.3 from Ubuntu Hardy.22:52
Ilari Hmm... How is the protocol just asking for deadlock? What reads and writes run in parallel?22:54
spenser Has anyone seen this issue before? Should i file a bug somewhere? Also, how do I work around htis problem. The error I recieve during my commit is fatal: /usr/bin/git-checkout cannot be used without a working tree. error: hooks/post-receive exited with error code 122:54
alien joined22:54
robinr I think it can, but there is some similarity to notifiers. ACE has a event loop too22:55
alien hello, can svn sumbodules be added to a git repo?22:55
spearce Ilari: client sends "have" lines in parallel to the server sending "ACK continue" lines. if there isn't sufficient buffering on at least one side for the 2*32 have lines, then you can deadlock.22:55
robinr alien: there is no such concept22:55
przemoc spenser: try newer git, https://launchpad.net/~git-core/+archive/ppa22:55
spenser przemoc: will do.22:55
parasti huh, nice straight-forward URL22:56
alien robinr: then how could I track a couple of external svn or git project from a central git project?22:56
flaguy48 joined22:56
przemoc spenser: in short add deb http://ppa.launchpad.net/git-core/ppa/ubuntu hardy main22:57
Ademan joined22:57
przemoc spenser: to /etc/apt/sources.list22:57
spenser: run: sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com E1DF1F24; sudo apt-get update; sudo apt-get install git-core22:58
Ilari spearce: And client only reads the continue lines after blasting slew of haves?22:58
spearce Ilari: correct. client can blast up to 64 have lines before reading anything from the remote peer22:58
there was a bug in jgit where we had sufficient client buffering, but we stopped reading from the peer too early22:59
hyperair left22:59
spearce the client only needs 2948 bytes of buffer.22:59
rjc_ joined23:00
spearce in the case of TCP sockets, i think most TCP implementations allocate at least that for the send queue.23:00
for a local pipe, I don't know.23:00
Ilari spearce: Local pipe is 4096.23:00
spearce: For pipes. Don't know about sockets (IIRC, it uses those).23:01
spenser przemoc: I'm installing it now23:01
spearce Ilari: basically the bad thing about the protocol is you must have at least 2948 bytes on the client send queue to avoid deadlock. C git is betting that most OS kernels will give them that with a TCP socket or a local pipe.23:02
spenser I think that fixed it23:02
przemoc: I believe that fixed it23:02
tjafk2 joined23:02
mstrl left23:03
Ilari spearce: Doesn't it actually distribute over all four buffers (TX and RX buffers of both half-connections)?23:04
spearce Ilari: yes, that too23:04
spenser przemoc: yes its fixed in the ppa. Should I file a bug on the package or do anything else?23:04
spearce given that Nagle's algorithm should still be enabled on the send side, and the size of a TCP/IP packet, with the TX buffer on client and RX buffer on the server, that 2948 bytes probably is already easily handled in any TCP implementation.23:05
Leemp joined23:05
thiago_home nagle is asynchronous23:06
przemoc spenser: I'm not sure whether they'll backport git changes to older release. You may try and in the worst case you'll waste some of your time.23:06
spearce thiago_home: but my point was just that although we're doing these tiny 46 byte writes, they should coalesce into about a full IP packet.23:06
at which point, we're only talking about what, 2, maybe 3 IP packets needed worth of buffering?23:07
robinr isn't the amount of data you can write over TCP related to the window size ( a *lot* larger tha 2948 bytes)23:07
?23:07
Ilari spearce: Full TCP/IP payload is in practice 1460 bytes.23:07
spearce oh, yea, good point robinr, that too23:07
thiago_home Nagle is about trying to get 1460 bytes23:07
spearce the window size for the stream at this point should be a lot larger than 2948 bytes23:08
thiago_home then it fires off a TCP/IP packet23:08
spearce and 2948/1460 = 2.019 packets... so we should be able to buffer one packet in the TX buffer, fire it off, and buffer one more, fire it off, before the client needs to start reading.23:09
spenser przemoc: So file a bug on launchpad against the specific hardy package of git-core?23:10
przemoc spenser: There are other worthy ppas. Consider OOo 3 (https://launchpad.net/~openoffice-pkgs/+archive/ppa), svn 1.5 (https://launchpad.net/~mdiers/+archive/ppa) and so on...23:12
spenser: yes23:12
voker57__ left23:12
dwave left23:12
voker57__ joined23:13
nighthwk1 joined23:13
joshsdc joined23:14
eno__ joined23:16
nabilelisa joined23:17
struberg spearce: when I use TreeWalk, i.getDirCacheEntry().getLastModified() always gives me "Tue Oct 13 17:55:45 CEST 2037" (2139062145139) is this ok?23:17
spenser przemoc: I am filing the bug right now.23:17
struberg try to implement SimpleRepository#status with TreeWalk ...23:17
spearce struberg: aaah. that's a racy git condition.23:17
MisterN left23:18
nabilelisa hi all, does anybody know how i can get my ant build script to compile to a different directory based on my current git branch?23:18
spearce struberg: basically we can't be 100% sure that the last modified time can be relied upon, so we give you a time that is very unlikely to match the working directory file.23:18
struberg spearce ah makes sense23:19
spearce struberg: when the index entry doesn't match the working directory file, you need to check the content to see if it hashes to the same objectid.23:19
tjafk1 left23:19
spearce struberg: if it does, a "good" status program would then update the last modified time in the index, and write the index back to disk, to save from doing that in the future.23:19
struberg: where racy git triggers is if the index and the working directory file were written in the same filesystem timestamp.23:19
struberg spearce ah kk, hoped to only need the DirCacheIterator, but better I use the DirCacheBuildIterator?23:20
spearce e.g. if the filesystem only tracks second accuracy, and they are written in the same second, there is a good chance that an overwrite of the file would also happen in the same second, and not be noticed23:20
struberg yup I'm aware of that23:20
spearce struberg: maybe you want to use the build iterator here, so you can do the update23:20
robinr $ cat /proc/sys/net/core/wmem_max23:21
13107123:21
killerchicken__ nabilelisa: well, you could parse the output of git status, for example?23:21
struberg spearce, yeah, once I get the basic parts running, then I'll working on writing them back to the DirCache ;)23:21
robinr means I can write 128k before write blocks?23:21
Radar left23:21
frando left23:21
nabilelisa killerchicken__: cool, interesting idea. i'll look into it, thanks. do you have any sample code handy i can start with?23:21
schacon left23:23
ericindc joined23:23
spenser przemoc: Bug #374658 has been filled on the issue. Would you mind looking at it and making sure I don't need to add anything else?23:26
eno left23:27
robinr #¤"#¤% mercurial plugin, always hangs eclipse for a while on startup23:28
spearce robinr: isn't that a feature? :-)23:28
killerchicken__ nabilelisa: sorry, missed that question. Something like git status | grep "On branch" | awk '{ print $4 }' maybe? Note that that is rather brittle, of course (doesn't work if you're not on a branch currently, for example)23:29
(the output will be empty for that case)23:30
nabilelisa killerchicken__: thanks, i was thinking of doing it like that actually, but then i got a bit more ambitious and am looking into http://ant.apache.org/faq.html#batch-shell-execute to see if i can automate it as part of my ant target23:30
i dont know if it'll work, but it would seem cleaner i think23:31
struberg left23:31
nabilelisa thanks for your input though - i appreciate it.23:31
scientes left23:31
killerchicken__ yeah, as I said, I don't really know ant23:31
Ilari nabilelisa: Better way to get current branch is probably to first try to read HEAD using symbolic-ref. Then you have the detached case still.23:32
nabilelisa Ilari: hrm, sorry im not sure i understand that (im newish to both git and ant)23:33
killerchicken__ has never used symbolic-ref before. I guess I should take a peek23:34
struberg joined23:34
Ilari nabilelisa: 'git symbolic-ref -q HEAD'. If it returns 0, then it prints FQRN of current branch to stdout. If it returns 1, run 'git rev-parse HEAD' to get the detached commit ID.23:34
robinr spearce: makes me use the uninstall feature23:35
killerchicken__ hm, symbolic-ref is missing from the bash autocomplete thing23:35
heh, maybe it only has porcellain commands23:35
Ilari nabilelisa: Better yet: `git symbolic-ref -q HEAD || git rev-parse HEAD`23:36
nabilelisa: That outputs either FQRN or commit ID for detached case.23:36
nabilelisa Ilari: what's FQRN?23:37
robinr spearce: btw, I'll fix that bug I mentioned in the Eclipse newsgroup tomorrow23:37
Ilari nabilelisa: Fully Qualified Ref Name. For example 'refs/heads/foo' for local branch 'foo'.23:38
spearce robinr: oh, the origin/HEAD symref not reporting? ok23:38
robinr yep23:38
jelmer_ joined23:38
Ilari Wonder how Jgit would react to HEAD being symbolic link?23:38
przemoc spenser: It's almost fine, but your wish for sure won't be granted, because only neccessary change (cherrypicked commit) can be applied if any. Ubuntu maintainers doesn't change major release version of their packages.23:38
nabilelisa Ilari: oh, i think i see23:38
robinr >> 0xBED;23:39
handstandmilitia joined23:39
handstandmilitia longtime listener first time caller.23:39
jelmer_ left23:39
bnferguson joined23:39
nabilelisa Ilari: yes, i've just done a small test, it seems that it would help me. is can you think of any reason why this would be 'better' than using awk? i feel slightly more comfortable with that, but i'm not really experienced enough to know what i'd be missing out on by taking that approach23:40
handstandmilitia I was curious if its possible to 'checkout' or get a specific revision for an arbitrary repository if I know the revision I want.23:40
Ilari nabilelisa: Git status output is not intended for machine parsing.23:40
spenser przemoc: How can I cherry pick the commit that fixed this problem?23:40
handstandmilitia Im essentially just looking to get a snapshot and im not interested in cloning and getting the whole revision history23:40
spenser przemoc: That way I can just tell them which change to incorporate?23:40
nabilelisa Ilari: ah, so the formatting could change in future updates?23:40
ashleyw left23:40
nabilelisa i see23:40
przemoc spenser: seeing git 1.6.x in hardy's official repo is impossible, however fixed git 1.5 is possible23:40
nabilelisa Ilari: well, that's a good reason i guess23:41
Ilari handstandmilitia: There is remote snapshot feature, but most of the time it doesn't work.23:41
przemoc spenser: yes, it will be helpful for them23:41
handstandmilitia ilari haha awesome23:41
spenser przemoc: Is there a revision history somewhere?23:41
ceej joined23:41
handstandmilitia ilari know the syntax?23:41
Ilari handstandmilitia: It pretty much only works with ssh and file protcols. And it doesn't work if remote end is using gitosis (git@foo or gitosis@foo are mostly those).23:42
przemoc spenser: sure, http://git.kernel.org/?p=git/git.git;a=summary23:42
handstandmilitia im working with a github repo in this instance23:42
Ilari handstandmilitia: Also, if the repo has gitweb, then that might have snapshot enabled.23:43
handstandmilitia: IIRC, github has snapshot download from web interface.23:43
spenser przemoc: I'm going to search this and see if I can find a commit then attach the commit sha-1 in the comments.23:44
handstandmilitia ilari dont know the syntax though? I suppose I can poke around for it... the gitweb feature is cool, but i actually have a script run it23:45
przemoc spenser: if there will be any interest, git-core maintainers will solve the problem even without specyfing commit(s), because they're familiar with git (or at least shoud be)23:45
Ilari handstandmilitia: 'git archive --remote=URL <commit>'.23:45
handstandmilitia an sweet, i was actually looking at github just now and was about to write a script to wget it lol23:45
spenser przemoc: I understand but they give me an OS for free the least i can do is try to help out.23:45
wshimmy1 joined23:45
dkr21 left23:46
Ilari handstandmilitia: But most of the time, that just plain doesn't work because remote rejects it.23:46
handstandmilitia well if it rejects it i'll either write a script to auth to github and get it from the web or i'll just download it manually and have my script download the tarball from wherever i store it...23:46
that might even just be the better option huh...23:46
przemoc spenser: praiseworthy attitude23:46
patmaddox left23:47
handstandmilitia ilari thanks for the info, 1000 internets to you.23:47
http://audibble.files.wordpress.com/2008/11/freeinternet.jpg23:47
killerchicken__ please refrain from posting the link 1000 times - I'm sure Ilari knows where the refresh button is :-)23:49
handstandmilitia ilari you are totally on the ball: http://groups.google.com/group/github/browse_thread/thread/cfcbcb1dc5f41f16?pli=123:50
Ilari CTRL+R? :-)23:50
handstandmilitia github doesn't support it out of caching reasons, easier to cache the tarball via the web23:50
thanks for the tips!23:50
Pewpewarrows joined23:50
Ilari Getting the latest tarball from archive is actually pretty CPU efficient.23:51
Except that the compression can't be cached... And it will blow bandwith like crazy without it...23:52
Emachman joined23:52
spenser przemoc: Can't seem to find a commit with that topic maybe a ubuntu patch is causing the error is there anyway for me to check the ubuntu patches if any?23:52
Emachman Hi, is there a way to remove a commit from the history? I accidentally committed some private info23:53
handstandmilitia left23:53
tatsuyao left23:54
Bass10 left23:54
killerchicken__ Emachman: have you published it already? meaning, did you push it anywhere?23:55
przemoc spenser: https://launchpad.net/ubuntu/+source/git-core23:55
Emachman I pushed it already to github23:55
robinr left23:55
przemoc spenser: there under hardy release you can find ubuntu diffs23:56
offby1`offby123:56
killerchicken__ Emachman: ok. you can do an interactive rebase locally, take out the commit, and force pushing23:56
przemoc spenser: but I doubt that maintainers broke it23:57
JohnnyL joined23:57
spenser przemoc: I bet someone fixed it without telling anyone in git.git.23:57
Emachman killerchicken__: How would I do that?23:58
spenser przemoc: It's probably going to be too dificult for me to find then.23:58
przemoc: Well I tried.23:58
killerchicken__ Emachman: how long ago was that commit? Have you merged since?23:58
Emachman April 2823:58
killerchicken__ well, I meant "have you done a lot of stuff since then"23:59
Emachman 1 commit23:59
When I was removing the private info23:59
killerchicken__ ah, so no big deal23:59
wshimmy left23:59

Logs Search ←Prev date Next date→ Channels Documentation