IRCloggy #git 2008-11-16

Logs Search ←Prev date Next date→ Channels Documentation

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

2008-11-16

bcarlyon|laptop joined00:05
quoin joined00:06
moccuo left00:06
felipec left00:06
eddyp left00:08
moccuo joined00:08
nirvdrum joined00:10
nirvdrum left00:11
aspotashev joined00:14
__name__ joined00:14
name left00:16
__name__name00:16
felipec joined00:20
ajonat left00:21
coderdad left00:21
coderdad joined00:21
novas0x2a joined00:23
drizzd_ left00:23
jesselucas_jesselucas00:23
jogla what is commit 1bd90415deccc4562e0fb4d0f8e58140aa687ac1 like?00:25
It has no parent, but seems not to be a branch either00:25
(this is a commit of the git repository itself)00:25
davidfetter joined00:31
novas0x2a1 joined00:32
Tv jogla: i'd guess it's merged to something that is on some branch00:32
$ git branch -a --contains 1bd90415deccc4562e0fb4d0f8e58140aa687ac100:32
kernel/todo00:32
novas0x2a left00:33
jogla Tv: but it has no parent00:33
Tv jogla: sure, *it* doesn't have a parent00:33
jogla and what is that parent?00:33
Tv jogla: http://eagain.net/articles/git-for-computer-scientists/00:33
davidfetter left00:37
davidfetter joined00:38
jogla Tv: I think that branch that commit was from is not connected to any other branch in the repository in any way00:39
Tv jogla: that is not true00:39
also, commits are not "from a branch"00:39
schme joined00:45
jm left00:45
p4tux joined00:46
pillowfactory joined00:47
gottesmm joined00:47
stouset|awaystouset00:50
p4tux left00:53
schme_ left00:56
bobmcw joined00:58
fynn joined01:04
fynn bremner: still here?01:04
I tried your suggestion, and unfortunately it doesn't work...01:04
just to recall the issue: we have a file in the repo, which we want to freeze; it would remain in the repo in state X, but any change after state X would be ignored.01:05
so if someone check out the repo, he would get foo.py in state X. but if he changed foo.py locally, 'git status' and 'git diff' won't alert about the changes.01:06
and 'git commit -a' won't commit it.01:06
if anyone knows how to do that, it would be great.01:07
offby1 I suspect you can get half of what you want via attributes.01:07
But I also suspect that "commit -a" will always commit what's changed.01:07
name left01:08
carllerche left01:08
offby1 my hunch is you won't be able to get git to do this.01:08
fynn OK, getting it working with 'git status' and 'git diff' would be very good too.01:08
offby1 is this file some sort of configuration file that everyone must tweak, but for which those tweaks mustn't be checked in.01:08
fynn exactly so.01:08
yofel_ left01:08
thedocto1 fynn: add it to .gitignore?01:09
fynn thedocto1: doesn't work if it's already in the repo.01:09
thedocto1 really? it should just make it ignore all new changes.. or is that not what you want?01:09
offby1 when this problem comes up in svn, the stock answer is: instead of checking in the file itself, check in a template -- with a distinguished name, like "foo.cfg.tmpl".01:10
have the build or deployment process copy that .tmpl to the real name if that real name doesnt' already exist01:10
fynn thedocto1: ~/repo$ cat .gitignore01:10
foo01:10
~/repo$ git diff --name-status01:10
M foo01:10
thedocto1 hum.01:10
fynn 'git status' => # modified: foo01:11
offby1: OK, what were those attributes that you mentioned?01:11
thedocto1 oh, I see what I did... I was looking at the manpage for gitignore and that tells you what you should do01:11
fynn: refer to the git update-index --assume-unchanged documentation.01:11
fynn wah, awesome01:12
fynn looks01:12
pillowfactory left01:13
thedocto1 looks like it's exactly what you want01:13
fynn thedocto1: Linus reads my mind apparently01:13
mapreduce joined01:13
fynn yeah, thank you01:13
and thanks you too, offby101:13
thedocto1 np01:13
jesselucas left01:14
jesselucas joined01:14
offby1 yay01:15
sugi left01:15
fynn you are happy despite the fact that I typod "thanks" instead of "thank"01:17
thedocto1thedoctor01:18
fynn that probably means you posses a non-fussy personality, and a generally positive disposition.01:18
Tv tanks to offby101:19
sugi joined01:19
thedoctor so I'm trying to convince an svn user how he should see the light01:20
and will have to convince a crowd of them next week.01:21
fynn "if you don't migrate, Linux would eat your children"01:21
thedoctor besides merge histories, distributed nature, and speed, is there any other points I should memorize01:21
fynn thedoctor: git is faster than SVN?01:21
ciaran I suggest opening the curtains01:21
thedoctor fynn: I have speed up there01:22
I'm trying to think of really general things as opposed to enumerating all the tools and workflows01:22
fynn the only difference I can think of is maybe when you work locally with git vs. remotely on svn01:22
offby1 observes a Panzer division crossing his border with Finland01:22
ciaran thedoctor: amending01:23
offby1 thedoctor: 1) merging actually works (svn still has a nasty merge bug after six years); 2) your wc will never get hosed.01:23
thedoctor offby1: what is the bug?01:23
offby1 thedoctor: hold on, I'll give you a link01:23
moccuo left01:23
thedoctor ciaran: yeah, I'm including that and things like rebase and rerere01:23
fynn thedoctor: most people work with svn <1.5, and it doesn't even remember past merges.01:24
thedoctor fynn: check01:24
offby1 thedoctor: http://subversion.tigris.org/issues/show_bug.cgi?id=89801:24
fynn left01:24
offby1 thedoctor: couple things to beware of, though: 1) git is arguably harder to learn; 2) git's Windows support is pretty iffy01:25
thedoctor offby1: I'd say harder to master, but not too bad to learn, and I'm speaking at a LUG so windoze is a non-issue01:25
offby1 should be OK then.01:26
thedoctor wow that is kind of a stupid bug01:26
ciaran mention that Linus started the project :)01:26
thedoctor heh, yeah, I mention "fanboy factor" on the last slide :P01:26
ciaran hehe :)01:26
thedoctor and the phrase "pure, Linus-y C" somewhere01:27
moccuo joined01:27
ciaran maybe mention git gui/citool, though I never use them01:27
offby1 I wouldn't write in C myself, but it doesn't bother me that git is mostly C01:27
ciaran isn't very little of git actually C? At least when Linus was working on it01:28
I think it's being moved towards C now for portability/speed01:28
thedoctor the core is C01:28
stousetstouset|away01:28
offby1 lookit the source.01:28
thedoctor the shell scripts are fewer and fewer01:28
offby1 mostly C but with some shell and perl wrappers01:28
fynn joined01:28
offby1 oh, and Tcl/Tk plays a key role01:28
ciaran yeah01:28
fynn ah, I love git, that --assume-unchanged flag is so comfy01:29
stouset|awaystouset01:29
fynn what are some good places to make git repos accessible online?01:29
besides github ofc01:29
thedoctor giorious01:29
gitorious*01:29
and repo.or.cz01:29
fynn awesome. also Savannah supports it iirc01:30
of the code hosting platforms, which supports git besides Savannah?01:30
Zimm left01:30
thedoctor fynn: I don't think anyone does yet, although Google code was thinking about it and maybe SF was too01:31
fynn SF isn't that relevant for anything anymore01:31
thedoctor there are still a lot of projects on it01:31
albertito fynn: I've been told assembla supports git, but I never used it01:32
fynn thedoctor: hosting directly on Google would be cool. their official OSS blog had a detailed tutorial about working with git against their SVN system.01:32
thedoctor true, git-svn is nice01:32
but what do you need other than what the standard git hosters provide?01:32
fynn albertito: it does, it's first on their "supported SCMs" list01:32
thedoctor if you went with github, it would probably be a lot better than SF or google code01:33
fynn thedoctor: it would be nice to keep private repos01:33
though I suspect the only option there is to pay github01:33
albertito fynn: and something called "unfuddle" supports it too, but I haven't heard of it before (it just came up when I googled to verify that assembla supported git)01:33
thedoctor fynn: yeah, good luck finding something like that... the whole point of git is to spread the code out :P01:33
fynn albertito: cool. looks like there are quite a few.01:33
thedoctor: I want to spread it... to a select few01:34
thedoctor you could always use instaweb on a private server01:34
alb joined01:34
fynn yes, I could.01:35
we already have a paid, private SVN account01:35
unfortunately, the company does not support git, nor does it plan to.01:35
thedoctor fynn: ditch them for generic hosting perhaps?01:35
fynn thedoctor: possibly, though we've been happy with their service so far.01:36
thedoctor sounds like a rock and hard place.01:36
fynn nah, it would be OK.01:36
gebi it's not a problem as with svn if a git server doesn't work for an hour or two01:37
doener left01:39
chris2 left01:42
albertito left01:43
jesselucas left01:45
bobmcw left01:47
leethal- joined01:47
moccuo left01:47
leethalGuest9166801:48
johnw joined01:49
leethal_ left01:50
exon left01:50
jesselucas joined01:51
nice_burger joined01:51
schlortschlortwo01:54
schlortwoschlort01:54
bremner fynn: if you are will to pay, just get something with ssh access01:57
s/will/willing/01:57
felipec left01:58
bremner bah, I see someone already said that02:00
softdrink left02:04
stouset left02:04
Guest91668 left02:04
unreal left02:09
stouset joined02:09
fynn thedoctor: wrt earlier: iirc, git repos are also smaller in size than SVN repos.02:10
unreal joined02:10
thedoctor yeah, I'm using that as my defense for having to pull all the history :P02:10
fynn bremner: yeah... did you notice the --assume-unchanged solution mentioned earlier?02:10
diegoviola left02:11
bremner scrolls back02:11
fynn offby1: btw, the --assume-unchanged solution also works with 'git commit -a'02:12
the only way you might commit a changed --assume-unchanged file is if you explicitly 'git add' it, which is magically the most appropriate design decision.02:12
bremner fynn: ahh, cool, thanks for letting me know about that02:13
offby1 fynn: heh02:13
kukks left02:13
bobmcw joined02:16
Eridius joined02:25
softdrink joined02:26
gottesmm left02:29
bobmcw left02:29
leethal- left02:29
phpmattk_ joined02:32
Sonderblade joined02:42
quoin- joined02:42
koke left02:43
LiamH If I accidentally deleted some files and have other files changed but uncommitted, how do I restored the deleted files (but leave the uncommitted files as-is)?02:44
CyberBotX left02:45
quoin left02:46
nice_burger LiamH: git checkout -- path/to/file02:47
LiamH nice_burger, thanks. I did discover git checkout, but I did git checkout ., I have a clean checkout and lost my changed files. No worries, they are still in my emacs buffers.02:49
nice_burger cool02:49
offby1 LiamH: make sure your cat stays away from the keyboard ...02:49
priidu left02:50
LiamH however it would be nice if there were some way to just revert deleted files without naming them individually02:50
alip git makes me horny and stoned02:50
nice_burger LiamH: how would you describe them - git checkout 'all files that ever existed in dir xxx but were at somepoint deleted'?02:51
LiamH: but seriously, haven't tried it, but i bet giving it 'path/to/dir/*' or something would checkout everything under that dir02:52
LiamH no, git checkout everything in HEAD that isn't currently there, for idiots like me that accidentally delete files02:52
muthu_ joined02:52
LiamH well doing "." in the top directory wiped out my changed files02:52
nice_burger LiamH: yes, that's expected02:52
LiamH kind of like a git reset --hard02:53
nice_burger LiamH: i always commit before doing something i'm not sure of, so i can't lose stuff02:53
LiamH lesson learned!02:53
offby1 "git stash" is similar02:54
LiamH ah, right, I've used git stash before, good idea02:54
nice_burger right, haven't used git stash, but it does sound like exactly what you should do in that case02:54
LiamH kind of a commit for the indecisive02:55
nice_burger pencil droppers eh!02:55
LiamH: you know about gitcasts yet?02:56
LiamH no02:56
nice_burger gitcasts.com - videos, very useful02:56
LiamH better than the online tutorials?02:56
pygi left02:57
foca joined02:57
LiamH I'm waiting for O'Reilly or someone to put out a book called "Git: The Definitive Guide".02:58
nice_burger matter of opinion i suppose, but i've seen some cool tips in the videos i hadn't come across02:58
Sonderblade how do you make git-log output the names of the changed files?02:58
offby1 try git whatchanged02:58
LiamH nice_burger: interesting list of topics there02:59
offby1 Sonderblade: also try "git log --stat"02:59
xyzzy_ joined02:59
jackdempsey joined02:59
Sonderblade I just want an equivalent to svn log -v02:59
offby1 you can probably cook up something with --pretty03:00
nice_burger Sonderblade: http://book.git-scm.com/3_reviewing_history_-_git_log.html03:01
Sonderblade oh come on, this is an _easy_ question03:01
nice_burger Sonderblade: thought they already answered it, no?03:01
offby1 so is "why is the sky blue"03:01
nice_burger Sonderblade: git whatchanged isn't what you want?03:02
Sonderblade yeah it is03:03
nice_burger k03:03
offby1 "git whatchanged" is almost exactly the same as "git log --stat" from what I can see.03:04
nice_burger offby1: ja looks same here03:04
bremner not for me03:05
nice_burger similar, i should say, some data is not shared03:06
bremner whatchanged doesn't seem to have as detailed info on changes03:06
although, there is some sha1 looking things there that I don't understand :-)03:07
I guess it is file before/after sha103:08
nice_burger try git help whatchanged. more under the covers than at first thought.03:10
stouset left03:15
xyzzy42 left03:15
Ryback_ left03:20
stouset joined03:23
bdiego left03:27
aspotashev left03:32
ashleyw joined03:32
litage joined03:33
scientes left03:38
fauxweasel joined03:40
gregor joined03:43
gregor is it possible to get the total number of files and the file size in total with git?03:44
johnw you mean, the count of all differing versions of all files and their sizes?03:45
or do you want to count identical files across commits multiple times?03:45
gregor johnw, first one03:48
johnw you could use git filter-branch --tree-filter, and write a script that accumulates size info to a file that you would rather sum03:48
s/rather/later03:49
flaguy left03:51
samthetechie joined03:51
fauxweasel left03:55
samthetechie hey all04:00
I have just setup my first git server04:00
I have a qn04:00
I got an error msg / warning04:00
I have looked it up04:00
it was: ! [rejected] master -> master (non-fast forward)04:00
bdrewery ?? faq04:00
samthetechie is this a satisfactory fix: git push --force ?04:01
bdrewery yes, but you should understand what the problem is first04:01
or you may lose data04:01
samthetechie yeah04:01
well04:01
that is the insight I lack04:01
I am the only contributor at present04:01
bdrewery it's in the faq :)04:01
samthetechie thank you very much04:01
lol04:01
typical RTFM right?04:02
my bad04:02
bdrewery shrug I'm new too04:02
it's only an issue if you have OTHER people pulling your work04:02
otherwise just force it04:02
samthetechie ok cool04:02
I will read up tho04:02
then try to find out why it happens04:02
I suspect my workflow needs tweaking a bit04:02
bdrewery it's from rebasing/rewriting after pushing a commit04:02
samthetechie I did a few cheeky $ git commit -a -amend04:03
could that be it?04:03
bdrewery yeah probably04:03
after pushing?04:03
samthetechie um04:03
no04:03
before04:03
paltman joined04:04
samthetechie bdrewery: ok, I have read the FAQ. Oh, that is much better04:05
I like the extra functionality there04:06
I can work out what is wrong rather than just blindly forcing it04:06
lol04:06
Sonderblade In git, how do you do the equivalent of "svn revert filename.c"?04:07
bdrewery probably git checkout file04:07
reset might do it depending on your needs too I believe04:07
checkout will get the last checked in version though in that branch04:08
samthetechie have you guys seen this cheat sheet? I have found it useful: http://ktown.kde.org/~zrusin/git/git-cheat-sheet.svg04:08
bdrewery nice04:09
Sonderblade thanks04:09
samthetechie yw04:09
xyzzy__ joined04:11
fynn left04:19
LiamH left04:22
stousetstouset|away04:23
univate left04:26
stouset|awaystouset04:26
univate joined04:26
xyzzy_ left04:27
thedoctor left04:28
johnw left04:29
ceej left04:35
stousetstouset|away04:42
markelikalderon left04:44
softdrink left04:50
therrg joined04:54
jesselucas left04:57
cedricv joined04:57
joevandyk joined05:09
kovert joined05:09
samthetechie left05:09
tjafk1 joined05:10
kovert left05:12
therrg left05:15
sergiodj left05:19
cbreakcbreak|afk05:24
nikolasco joined05:26
tjafk2 left05:26
dcolish joined05:28
stouset|awaystouset05:32
joydivider joined05:34
dcolish left05:36
nice_burger left05:38
rubydiam_rubydiamond05:44
sergiodj joined05:45
thiago_home left05:46
thiago_home joined05:46
schlort left05:46
stousetstouset|away05:52
schlort joined05:54
threeve left05:55
rubydiamond left05:58
jackdempsey left06:00
rubydiamond joined06:01
up_the_irons left06:03
bobesponja left06:04
joydivider left06:07
madewokherd left06:08
foca left06:12
coderdad left06:15
ph^_ left06:16
coderdad joined06:17
robinr joined06:18
Fullmoon joined06:20
univate left06:22
paltman left06:24
univate joined06:24
[quoin] joined06:25
ph^ joined06:26
gambler left06:27
quoin- left06:31
GNUix left06:32
coderdad left06:32
gregor left06:44
moccuo joined06:44
nipuL joined06:44
cedricv left06:45
cedricv joined06:46
not-xjjkxjjk06:51
Weaselweb joined06:57
scook0 left06:58
scook0 joined06:58
SmSpillazSmSpillaz_t07:02
SmSpillaz_tSmSpillaz07:03
robinr left07:23
stouset|awaystouset07:24
Garoth left07:25
drewr- left07:30
drewr- joined07:30
muthu_ left07:34
Garoth joined07:43
drizzd joined07:52
tewk_ left07:53
tewk joined07:53
xyzzy_ joined07:57
Voker57 joined07:57
Arafangi1n joined08:06
drizzd_ joined08:10
xyzzy__ left08:13
jerbear joined08:13
Arafangion left08:14
rubydiamond left08:16
rubydiamond joined08:16
jerbear left08:19
Marmouset joined08:20
drizzd left08:21
mediogre joined08:27
rubydiamond left08:33
rubydiamond joined08:33
novas0x2a1 left08:41
clairvy joined08:42
kef joined08:45
therrg joined08:48
bronson left08:49
Ademan_ joined08:53
mediogre` joined09:05
mediogre left09:07
Ademan left09:09
stousetstouset|away09:12
ceej joined09:15
novas0x2a joined09:17
BartVB joined09:19
ashleyw_ joined09:19
radarek joined09:23
mediogre` left09:24
rubydiamond left09:32
ashleyw left09:34
pygi joined09:35
gambler joined09:35
unreal left09:38
stuffcorpse left09:39
unreal joined09:39
stuffcorpse joined09:39
Ademan__ joined09:42
chris2 joined09:52
tvw joined09:53
therrg left09:55
Ademan_ left09:55
rvsjoen left09:56
DrFrasierCrane joined10:05
ph^_ joined10:07
careo left10:10
careo joined10:11
xyzzy__ joined10:15
clairvy left10:23
priidu joined10:24
novas0x2a left10:27
kef left10:30
bcarlyon|laptop left10:31
xyzzy_ left10:31
stuffcorpse left10:31
charon joined10:35
loinclot_ joined10:35
vuf joined10:37
vuf I find it confusing that pasting a sha1 into the commit search field in gitweb does not find that commit10:39
stuffcorpse joined10:39
vuf oooh, now it does!?10:39
loincloth left10:40
vuf ah, it does on kernel.org only. So maybe someone else also found it confusing :)10:41
ceej left10:43
parasti joined10:48
lucsky joined10:49
clairvy joined10:49
kef joined10:53
kef left10:59
Arafangi1n Hey, are there any tools that convert a single-branch git repository to multiple branch, to "fix" it?11:01
quizme joined11:01
Arafangi1n Ie, in the event that some people branched by merely "copying directories".11:02
quizme http://fuseme@fuseme.com/var/git/fuseme.git <---- is that the right syntax? I think I'm missing a colon somewhere11:02
Arafangi1n Will obviously use rewritten history, though.11:02
exg left11:03
exg joined11:03
charon Arafangi1n: you can always use git-filter-branch and grafts to fix up history11:05
quizme what's the syntax for accessing a git repository while specifying the username?11:06
nm i found it11:07
i'm getting fatal: http://fuseme@fuseme.com/var/git/fuseme.git/info/refs not found: did you run git update-server-info on the server?11:09
but that file exists11:09
[fuseme@debroglie releases]$ ls -al /var/git/fuseme.git/info/refs11:09
-rw-rw-r-- 1 fuseme fuseme 59 Nov 16 04:35 /var/git/fuseme.git/info/refs11:09
not-xjjk joined11:09
quizme and i already ran git update-server-info on the server in /var/git/fuseme.git11:10
Ilari quizme: HTTP server remaps paths somehow...11:10
quizme Ilari: thanks, how do i compensate for that? in what way does it remap?11:11
Ilari quizme: Just guessing: '/var/www' -> '/' (or something like that)... :-/11:11
quizme Ilari: should i use git: ?11:11
ilari: if i used git:// then it wouldn't remap?11:11
Ilari quizme: If you run git-daemon. You can also use ssh:// if remote side has SSH open and git installed.11:12
quizme: Git-daemon can perform remapping, but by default it doesn't.11:12
parasti quizme: see man git-clone for valid URL syntax11:12
quizme parasti: i just did thanks, i think i have the right syntax now.11:14
ilari: so what should i do to fix this puppy? it's pretending not to know that info/refs is in /var/git/fuseme.git11:15
parasti quizme: I think the catch here is that if it can't find that file, it probably means the URL you gave is wrong11:16
quizme parasti: hmm11:16
Arafangi1n charon: git-filter-branch does more than just merely act as a filter?11:16
quizme parasti: my git repo is in /var/git/fuseme.git11:17
Arafangi1nArafangion11:17
kumbayo joined11:18
charon Arafangion: it's about the most powerful generic rewriting tool available... it lets you change almost everything as long as you maintain the rough ordering of commits11:18
parasti quizme: the URL syntax would depend on what kind of access you have to the host11:18
xanonus joined11:18
charon Arafangion: for example, if someone did an "svn style" branch-by-subdirectory, you can just gfb --subdirectory-filter on the appropriate range of commits to fix that11:18
quizme parasti: what do u mean?11:19
charon Arafangion: possibly followed by some --index-filter tricks to get rid of the subdirectory in other lines of history11:19
just make a backup and play with it ;)11:19
Arafangion charon: You can be damn sure I'm not doing any of my experimentation on a critical repo. ;)11:20
charon: But thanks. Just considering different ways of importing p4 history with branches. Seems like I'm going to just completely /ignore/ branches, and fix them up either mid-stream or after-the-fact.11:21
parasti quizme: I mean, if for instance you're accessing the host through HTTP, then the "/var/git" part most likely *won't* be part of the URL. you might not be able to log in through HTTP either11:21
Arafangion Manually, in other words.11:21
xjjk left11:21
parasti quizme: IIUC, those things are true for SSH access11:21
charon Arafangion: ah, well i have no p4 or p4-importing experience. i just used gfb+grafts successfully to fix up SVN histories that could not be handled by git-svn alone, for example if they used two different branch naming schemes over the course of their history11:22
Arafangion charon: Well, p4 actually does have a concept of branches, but I've discovered the hard way (by being stupid and trying to get the two to meet, and failing), so essentially I'm reverting to the idea that "there ain't no such thing as a branch", and thus I'm essentially treating it as entirely non-branched, ala what git-svn would do.11:23
charon git-svn does handle branches if you follow a somewhat reasonable directory layout :)11:24
quizme parasti: i was able to do that command before11:24
parasti: but now it's not working.11:24
charon i think it can handle anything that uses a layout of trunkdir/, prefix/<branchname>/suffix and prefix2/<tagname>/suffix211:24
Arafangion charon: Yeah, it attempts to use a heuristic to determine "typical" branches given a "typical" directory heirachy, which is essentially what I'm now limited to.11:26
charon well, what i did for one specific messed up svn, was just to run several git-svn imports with different branch/tag naming styles, then graft them together11:26
Arafangion charon: I'm thinking of incorporating a "url-rewriter", that for a given branch and path, returns the revised branch and path.11:27
For a path, returns the branch and revised path, rather, as I'm now ignoring p4 branches.11:28
quizme oh no... it was ssh://11:28
charon shrugs11:28
charon Arafangion: as i said, i don't know anything about p4 so i can't help there11:29
igel_ joined11:29
igel__ joined11:29
igel__ left11:30
Arafangion charon: Just wanted to talk to someone to help get my brain sorted out. :)11:30
igel_iGELig11:30
iGELig Hi. I've pulled changes from the wrong repository. I managed to clean up most of my files, but two files are now conflicted. How do I throw away the changes from the wrong repository?11:33
iGELig is quite new to git... :/11:33
Arafangion iGELig: Try reset.11:34
Ilari iGELig: If you don't have any uncommitted changes: 'git reset --hard' (this is why merging with uncommitted changes is not recommended)...11:34
iGELig thank, i'll try that11:34
Arafangion Ilari: Incidentially, that's a major reason why I'm trying to rewrite git-p4, the workflow it imposes (with rebasing, etc), makes it easy to result in a merge conflict. :(11:35
vuf Ilari: not recommended? Is it even possible?11:35
iGELig thanks, it worked.11:36
drizzd_ left11:36
vargadanis joined11:37
^sunshine^ joined11:42
^sunshine^ left11:42
iGELig left11:46
comp hello, doesn anyone here have some docs on "similarity index"?11:48
does*11:48
Marmouset left11:51
aspotashev joined11:52
rvsjoen joined11:53
drizzd joined11:54
entropy joined11:55
Ilari vuf: It is possible if remote side doesn't modify any uncommitted file (otherwise merge will abort).11:56
samthetechie joined11:56
entropy hi, i'm have a single file on windows that git (using git bash) sees as "modified". even `git reset --hard HEAD` and `rm <filename>;git checkout <filename>` don't work, the file is still marked as "modified" after both, how can i force git to "unmodify" it?11:57
Arafangion entropy: Check the case of the file path, and compare it to what git thinks it is.11:57
dave_h_d joined11:57
Arafangion In addition to the file name itself.11:58
entropy my entire project, all directory names, all filenames are all lower case only11:58
i double checked with this, to be sure, and it is so11:58
# modified: build/data/lang/suomi.lang12:00
Arafangion What does git diff say?12:00
entropy git diff makes a patch/diff file for the entire file except the first two lines, i cannot see any actual difference, it looks to me like it might be line ending confusion12:01
Arafangion Autocrlf sucks.12:01
entropy i've never used any line ending settings, don't really know where i'd look12:01
is that something automatically set for git-win32?12:02
Arafangion windows defaults ot autocrlf, yeah.12:02
entropy that's horrible :(12:02
Arafangion Apparently the typical windows user can't view text files without it.12:02
entropy which fm do I rt to find out about switching that off?12:02
Arafangion core.autocrlf false I think.12:02
entropy thank you12:02
Arafangion Mind you, imho it's better to leave it on on windows12:03
entropy yes --global list shows it on12:03
Arafangion Because most windows editors are _shit_, and will make it too easy to mix up line endings.12:03
entropy hmmm, i disagree12:03
i only use vim12:03
Arafangion Then this hsouldn't have been the problem.12:03
entropy i set it to "false"12:04
then did "git reset --hard HEAD"12:04
and it's fixed :D it's not "Modified" anymore12:04
fantastic12:04
thank you12:04
Arafangion Good to know. :)12:04
vuf Ilari: ah, I thought you said that conflicts was the reason that merging with a dirty tree is not recommended, but you were really talking about the reset12:05
entropy goes off to finalize his windows release12:05
entropy left12:06
moccuo left12:06
clairvy left12:07
moccuo joined12:07
tvw left12:11
ashleyw joined12:16
sdboyer left12:16
sdboyer joined12:20
ashleyw left12:21
ashleyw_ left12:23
bentob0x joined12:34
cbreak|afkcbreak12:35
rubydiamond joined12:38
Flathead left12:40
Modius left12:46
Yuuhi joined12:47
Modius joined12:47
xulf joined12:48
IronHeart left12:50
bobmcw joined12:54
Voker57 left13:00
cyclist joined13:03
bobmcw left13:04
SmSpillaz left13:04
cyclist left13:06
nud joined13:11
stouset|awaystouset13:12
jogla my 'git status' is getting sloooow, what can be the reason for this?13:15
drizzd is getting? what changed?13:21
markelikalderon joined13:21
soul9 joined13:23
soul9 re all13:23
i remember reading somewhere on how to stow away local changes for later13:23
maybe it's just creating a new branch?13:24
drizzd git stash13:24
soul9 stash13:24
right on13:24
drizzd but creating a new branch is good too13:24
soul9 drizzd: is there a way to push a stash?13:24
if not a branch is the way to go, i guess13:24
cbreak apply it13:24
soul9 ok, so i want a branch13:25
thx13:25
drizzd I believe it was possible to push a stash, but it was considered a bug and should be disabled now.13:25
I think stash is only useful for very shorttime stuff13:26
stousetstouset|away13:28
markelikalderon left13:28
soul9 yeah13:29
i guess a branch works allright aswell13:29
thanks13:29
pygi left13:30
Voker57 joined13:31
Zimm joined13:32
bcarlyon|laptop joined13:33
abbe joined13:35
markelikalderon joined13:36
stouset|awaystouset13:39
loincloth joined13:40
flaguy joined13:40
vuf left13:41
loinclot_ left13:45
muthu_ joined13:46
stouset left13:49
soul9 is itpossible to checkout a file from a different branch?13:50
s/is itp/is it p/13:50
shd git checkout branch -- file13:50
thiago_home no, it's not impossible13:50
soul9 ok13:50
thx13:50
heh, thiago_home13:50
thiago_home it looked like you were asking if it was impossible13:51
samthetechie left13:51
soul9 thiago_home: yea, i know :-D13:52
davidfetter left13:52
markelikalderon left14:00
coderdad joined14:01
lsk left14:05
robinr joined14:12
deskin joined14:13
SRabbelier joined14:13
rubydiamond left14:16
rubydiamond joined14:17
cu3edweb left14:18
Maerz joined14:19
tvw joined14:20
dragonball_ joined14:24
scientes joined14:25
rubydiamond left14:25
rubydiam_ joined14:25
adamb90 joined14:25
adamb90 left14:26
rubydiam_ left14:27
dragonball_ left14:27
rubydiamond joined14:27
rubydiamond left14:29
rubydiamond joined14:30
ciaran left14:32
awarde left14:33
awarde joined14:33
quizme left14:43
aspotashev left14:45
leachim6 joined14:49
stouset joined14:51
doener joined14:54
rubydiamond left14:55
ciaran joined14:58
rubydiamond joined14:58
leachim6 left14:58
careo left15:02
careo joined15:03
moccuo left15:06
moccuo joined15:07
jnareb joined15:08
[quoin] left15:09
jnareb tango_: nice sending v3 of "remotes and stuff" gitweb series15:10
tango_: haven't read it (and reviewed) yet, though...15:10
tango_ jnareb, thanks. actually it's just remotes now 8-D15:10
also, it depends on the check feature fix15:10
thedoctor joined15:10
jnareb tango_: splitting series into remotes, categories in remotes, and detached HEAD support is a good idea (not necessarily in that order)15:11
tango_ I'm sure you'd prefer to have detached HEAD first ;-)15:11
jnareb tango_: by the way, you forgot to signoff 'check feature fix'...15:11
foca joined15:11
jnareb tango_: not necessary15:11
tango_ aaaaaaargh15:11
jnareb tango_: perhaps detached HEAD before subcategories in remotes...15:11
tango_ damnit15:11
I have to configure my git to auto-sign-off all patches15:12
jnareb tango_: but I don't think that lack of signoff would require to resend (just reply with Signed-off-by, and hopefully Junio would correct such minor issue...)15:12
tango_ ok15:12
jnareb tango_: I have trained my fingers to use "git commit -s" (and have Signoff in stgit template)15:13
mediogre joined15:13
jnareb BTW. ad 'check feature fix': I think is high time to remove backward compatibility from git_get_config, and return boolean instead of 'true'/'false' (unnecessary round of mashall / unmarshall)15:14
tango_: about 'detached HEAD and stuff': will you go "git symbolic-ref -q HEAD" route, or (-l "$project/HEAD" || $line =~ /^ref: /) route?15:17
tango_ symbolic-ref, I think15:18
trochala joined15:18
rubydiam_ joined15:18
jnareb tango_: why?15:18
tango_ dunno, probably because this was already what junio suggested and I have the patch ready 8-D15:19
stillLotR joined15:19
jnareb tango_: Perl route is not that difficult; if it is symlink, it is not detached head. if it is symref, it is not detached head (and you can get sha1 of commit by the way)15:19
well, we can always change it "in tree" if it is properly encapsulated.. :-)15:19
rubydiam_rubydiamond__15:20
tango_ yeah, for sure I'll do the encapsulation earlier this time 8-D15:20
jnareb well, I understand (I guess) that the later part of series were commit-as-it-goes... ;-P15:20
tango_ in the case of symlink, what does HEAD link to?15:20
rubydiamond__ left15:20
cedricv left15:20
SRabbelier git rebase interactive should give a warning if you leave untracked files in your workdir when doing 'git rebase --continue'...15:21
rubydiam_ joined15:21
jnareb tango_: refs/heads/<branch> even if <branch> is packed15:23
tango_: for git_get_symbolic_ref you can do readlink(...) like in check_head_ok()15:23
tango_: but for git_is_head_detached() it is not necessary15:24
tango_: I think...15:24
tango_ well, we can rather do git_get_head_branch(), which is the branch, if any, or undef, if not15:25
and head is deatched if git_get_head_branch() is undef15:25
jnareb tango_: the "!defined $current_branch" idea?15:26
tango_ jnareb, this can be used for additional stuff such as marking only the proper brnach etc15:26
jnareb yes15:26
tango_ the stuff we were brainstorming abouy yesterday, yes15:26
mw|out joined15:27
LotR left15:29
kukks joined15:30
jnareb it is a bit pity that some of dropped/forgotten gitweb patches ("git" link, sections in projects list) didn't got resend...15:33
Ryback_ joined15:33
tango_ jnareb, sometimes the lag between send and ack can get demotivating15:35
rubydiamond left15:35
jnareb well, there is a fact that there is no gitweb maintainer15:36
tango_ heck, I spent 4 hours yesterday embedding icons for gitk and git-gui, if those patches don't get in I'm going to strangle the respective maintainers 8-D15:36
and then I'n going after whoever invented tcl tk 8-D15:36
jnareb, well you and pasky are the defacto maintainers15:37
ptman left15:37
rubydiam_rubydiamond15:38
jnareb pity that GSoC2008 gitweb caching didn't get hoped for results: caching in git.git, and maintainer for gitweb or adming for kernel.org...15:39
SRabbelier jnareb: whatever happened to lea's work?15:39
jnareb three big commits15:40
it is there, but not merged in15:40
SRabbelier jnareb: they never got accepted?15:40
jnareb I have merging it in smaller chunks in my gitweb TODOs15:40
cedricv joined15:40
jnareb Lea send some preparatory patches that got accepted15:40
SRabbelier nods15:41
SRabbelier jnareb: how come they never got merged?15:41
jnareb but not the large ones: Mechanize test, Git::Repo and caching15:41
SRabbelier jnareb: what was wrong with the tests?15:41
stillLotR left15:41
jnareb SRabbelier: big patches and bad timing (feature freeeze), IIRC15:41
SRabbelier jnareb: :-/15:42
jnareb: resend?15:42
jnareb SRabbelier: and lack of time from reviewers (me, GSoC mentor,...)15:42
SRabbelier jnareb: sounds like a resend might get it accepted after all?15:43
jnareb beside Mechanize test got "improved" so it doesn't no longer work standalone, as ./t-9503-gitweb-Mechanize.sh15:43
OTOH you can test it with different Perl versions15:43
SRabbelier mhhh15:43
gambler_ joined15:43
jnareb ./t9503-gitweb-Mechanize.sh from t/ directory15:44
SRabbelier jnareb: it is based off her work?15:44
jnareb and it should be, because debugging usually begins with request for "sh -x ./t**** --verbose --debug"15:44
SRabbelier hehe :P15:44
jnareb SRabbelier: it is her work15:44
SRabbelier jnareb: -nods-, ok15:44
jnareb: so that patch got ~ accepted?15:44
(albeit in a different form)15:44
jnareb well, at least the work is here, and everybody can access it, and even apply for their own gitweb installation if needed15:45
SRabbelier: nope. It got resend corrected.15:45
SRabbelier: in 0/3 _large_ patch series, IIRC15:46
SRabbelier jnareb: erm, what do you mean?15:46
moccuo im new to using git, and i've reached a point in my code where i want to go back to a certain commit, and start over from there. how can i do this?15:46
tango_ moccuo, discarding all subsequente changes?15:47
moccuo tango_: hmm, no15:47
if thats an option15:47
madewokherd joined15:47
SRabbelier moccuo: then what do you want to do with those changes?15:47
tango_ then I would go with a git branch firstmethod, which will make the branch firstmethod begin at the point you're at15:47
jnareb when there was time to send final version of gitweb-caching work, they were send as two big patches: v10 Mechanize test (from zero), v3 Git::Repo (from zero), v2 gitweb caching (cahcing _and_ use of Git::Repo)15:48
tango_ moccuo, and then checkout out another branch at the place you want to start from15:48
jnareb s/two/three/15:48
jnareb apparently can't count ;-)15:48
SRabbelier jnareb: right, but you say that later on the v10 Mechanize test got accepted15:48
jnareb err... no, there is no t/t9503-gitweb-Mechanize.sh in git.git (I think not even in pu)15:49
unfortunately15:49
SRabbelier jnareb: oooooh, like that15:49
jnareb: ok, now you're making sense :)15:50
gambler left15:50
SRabbelier jnareb: it got resent, but never accepted?15:50
jnareb yep, dropped on the flow15:50
not getting reviews probably wouldn't help ;-///15:50
SRabbelier jnareb: mhhh, lame15:50
jnareb and large size didn't help getting reviews :-(((15:51
SRabbelier jnareb: aye, but if it's adding a new test, how do you split that up...15:51
moccuo tango_: ok, what about going back to the last commit you did? discarding all the unindexed changes that you've made?15:52
jnareb I would at least split off the "$(PERL_PATH)" stuff that no other test currently uses (which is not done completely right, and AFAICT caused ./t9503-* to fail)15:52
tango_ moccuo, git reset --hard HEAD15:52
moccuo would it be the same way?15:52
ah, kk15:52
jnareb moccuo: git reset --hard HEAD15:52
SRabbelier jnareb: -nods-, have you spoken with her since?15:53
chris2 left15:53
jnareb nope, lea is not active on git mailing list... perhaps I should try IRC (lea_w) or Google Talk...15:53
SRabbelier jnareb: mail her? ;)15:54
LiamH joined15:54
jnareb SRabbelier: having to work around *bugs* (well, bug) in WWW::Mechanize::CGI didn't help either15:54
SRabbelier jnareb: hehe, lame :-/15:54
jnareb SRabbelier: sent' bugreport to CPAN, no reply...15:54
SRabbelier jnareb: d'oh, is it no longer maintained?15:55
jnareb 11 Dec 2005 <--- doesn't look like it15:56
and I don't know enough about CPAN to be sure if it is possible to send patches to unmaintained modules15:57
and fix _is_ very simple15:57
drizzd_ joined15:58
exon joined15:59
jnareb the bug is about space in pathname to CGI script16:00
SRabbelier jnareb: offer to become maintainer? :p16:00
ferdy left16:00
SRabbelier jnareb: even if only to get that patch in16:01
jnareb Gah16:01
I'm not Perl guru16:01
probably not all of module maitainers are, though...16:01
SRabbelier jnareb: exactly ;)16:02
loinclot_ joined16:03
jnareb I was hoping for some resident (and temporaries) Perl gurus like for example merlyn to take mantle ;-P16:04
SRabbelier jnareb: poke them? :D16:04
ferdy joined16:05
ciaran left16:05
careo_ joined16:06
loincloth left16:07
pygi joined16:08
Ilari left16:09
moccuo tango_: and is there a way to undo that? or no16:10
tango_ moccuo, I think that the reflog can be used for that, but it's something I never did and I don't know how to do it, sorry16:11
SRabbelier moccuo: mhhh, not really16:12
moccuo: unless you 'git add'-ed them earlier16:12
pygi left16:12
jnareb git reset --head HEAD@{1} / or HEAD@{2}; check "git reflog" output16:12
Mario_ joined16:12
SRabbelier moccuo: (in which case you can find the mwith lost-found)16:12
hansengel joined16:12
SRabbelier jnareb: you mean git reset --hard, not --head :P16:12
hansengel Hi, I just built Git from source and tried running git-daemon, but I get "Command not found." Tried building again with `make git-daemon` and `sudo make install` - still nonexistent.16:13
How do I get git-daemon installed?16:13
jnareb moccuo, SRabbelier: --hard, and it wouldn't truly help with recovering unstaged changes after reset. it is '--hard' for a reason (like 'rm -rf')16:13
SRabbelier jnareb: yes, that's what I mean too16:13
jnareb hansengel: man git-daemon section EXAMPLES16:14
rboyd hansengel: you might want to check out gitosis instead16:14
jnareb Gitbot: ?16:14
hansengel rboyd: I just want to have a public git server on my network, authentication isn't important here16:14
moccuo !botsnack16:14
drizzd left16:14
rboyd okiedokie16:14
hansengel jnareb: It wasn't installed at all. I get 'No manual entry for git-daemon`.16:15
(This is Git 1.6.0.4.)16:15
rboyd man, I'm trying to quit smoking cold turkey (again)16:15
hansengel All of the other git commands are working fine16:15
rboyd sux16:15
Mikachu why would you smoke cold turkey? :P16:16
hansengel haha16:16
doener hansengel: make quick-install-doc16:16
hansengel: and it's "git daemon"16:16
hansengel doener: Oh.. dumb me, forgot that they removed all of the git-* stuff16:17
Thank you :)16:17
jnareb hansengel: what distribution? if it is Debian derivative, it has many split patches for git16:17
hansengel jnareb: Yeah, it is.. Ubuntu16:17
doener hardly matters for an installation from source though ;-)16:17
Mikachu jnareb: <hansengel> Hi, I just built Git from source16:17
jnareb I think that git-daemon is one of the few server commands which do have dashed version (git-shell and git-cvsserver are example other)16:18
Mikachu it doesn't16:18
jnareb Hmmm...16:19
SRabbelier jnareb: correct16:20
Mikachu it's a separate binary, but it isn't in $PATH16:20
LiamH Is there a way to "unadd" files that have been added but not committed? I want to put them in a different place.16:20
SRabbelier jnareb: errr, wait, isn't it only git-send-pack and git-receive-pack?16:20
doener only the "remotely" called ones have the dashed forms available.16:20
Mikachu git-shell is in $PATH i think, maybe only $ROOTPATH16:20
no, it's in /usr/bin16:20
LiamH: git reset file16:20
SRabbelier LiamH: git rm --cached16:20
hansengel Also, how can I make git-daemon be a daemon? lol16:20
SRabbelier LiamH: oh, that would be better probably16:21
hansengel Right now it's not16:21
doener hansengel: --detach16:21
hansengel doener: Thanks :)16:21
LiamH Mikachu, SRabbelier: thanks16:21
rubydiamond left16:21
careo left16:21
scrooloose left16:22
samthetechie joined16:22
samthetechie left16:23
hansengel left16:23
scrooloose joined16:26
coderdad_ joined16:28
ptman joined16:31
jnareb See you later16:32
jnareb left16:32
fynn joined16:32
fynn Hi16:32
suppose we have a repo at /repo, with /repo/foo.py and /repo/baz.py16:33
muthu_ left16:33
fynn we also have a plain directory /somedir, with the same files.16:33
doener left16:33
doener joined16:33
rboyd hey doener16:34
fynn now we want to make /somedir a repository, which is the exact copy of /repo, except some changes in /somedir/baz.py would be preserved.16:34
one way that works is to simply copy /repo/.git to /somedir16:35
and then behave like /somedir/baz.py is a tracked file with local modifications.16:35
but is there another, more standard way of doing that?16:35
ia left16:35
fynn (somehow, copying .git around seems a bit dirty)16:35
Mikachu left16:36
offby1 fynn: I don't think there's anything at all wrong with copying .git, odd as that might sound.16:36
I am pretty sure git was designed so that it's safe to do exactly that16:36
doener hi rboyd16:36
offby1 I've certainly done it a bunch of times with no trouble.16:37
rdavila joined16:39
rdavila left16:39
kanru left16:39
bremner only the evil case-insensitive-clod file systems cause trouble16:39
Ramblurr joined16:40
fynn offby1: hm, I'm surprised the use-case is clear. didn't think anyone else was doing that.16:41
offby1 oh it's quite convenient16:42
fynn I thought I'd ask about it and nobody would understand what I'm talking about.16:42
offby1 I use it to copy a repository without dragging the working tree along16:42
fynn right, that's sort of what we're doing as well.16:42
offby1 you're using it to do a quick clone that preserves some changes that you've already made16:42
fynn yeah, exactly.16:42
offby1 your case and mine are really the same16:42
rboyd fynn: couldn't you just git init in /somedir, git remote add old /repo, branch, pull, merge?16:42
offby1 rboyd: I imagine that'd work too16:43
doener pull is already fetch + merge ;-)16:43
offby1 fynn: the difference between a simply copy, and what rboyd is suggesting, is that rboyd's scheme sets up the new repository to conveniently "track" the old, whereas with your scheme, you'd have to do the "git remote add" by hand afterwards, if you wanted that tracking.16:43
s/simply/simple/16:44
fynn yeah16:44
doener at the same time, the "copy .git" way keeps the remotes that were setup in the old repo16:44
coderdad left16:44
doener which might also have some benefit16:44
offby1 ayup16:44
fynn actually, what we're doing is "updating" somdir with /repo every once in a while16:45
offby1 aha16:45
coderdad joined16:45
offby1 then copying .git suddenly sounds like a bad idea16:45
I'd look into rboyd's plan16:45
coderdad_ left16:45
harinath left16:45
fynn only problem is, /repo isn't always accessible by the machine where /somedir is :)16:45
offby1 so update when it _is_ accessible :)16:45
rboyd offby1: you can drop the remotes easily enough though16:46
offby1 and you've now got the classic straightforward use-case for distributed revision contorl16:46
control16:46
fynn yeah, an emerging solution: put /repo in the local machine, every once in a while update it by copying /repo from the origin machine, then do a pull.16:46
offby1 well ...16:46
doener just "git fetch" when you have connectivity. problem solved16:47
offby1 that sounds kinda pointless, when you could just have the local machine be a clone of the original16:47
fynn offby1: ("isn't always accessible" in this case means, for some machines it's never accessible :)16:47
offby1 yeah16:47
fynn doener: see ^16:47
doener fynn: then look into "git bundle"16:47
offby1 fynn: maybe you should consider putting a repository on some sort of removable media16:47
doener fynn: see ^16:47
:-)16:47
offby1 ... or "git bundle",sure16:47
fynn offby1: that's _exactly_ what I'm doing16:47
doener: every time I need something, turns out git already has something for doing it.16:48
offby1 fynn: can you be more specific about your setup? What are these disconnected machines, and what's in the repository? (Or is it a Sekret™?)16:48
harinath joined16:48
offby1 s/Sekret™/Sekrit™/16:48
fynn offby1: it's not Sekret, it's Sikrit16:48
right.16:48
offby1 gotta uphold those spelling standards16:48
fynn well, we plan to take over the world, and...16:48
oops16:48
offby1 please don't kill me16:48
doener are you pondering what I'm pondering?16:48
fynn you're on the whitelist for now.16:49
offby1: it's simple, really: we're using git for deployment.16:49
offby1 aha16:49
so the repository contains, e.g., a web site, database, etc.16:49
I have this vague notion that that's a bad idea, but I can't articulate why (other than: "well, _my_ company doesn't use git for deployment" :-)16:49
fynn mostly just code files, but yeah. sometimes, the machine we deploy too (by disk-on-keys) has local modifications that we want to preserve, though not distribute.16:50
offby1 yeah.16:50
this comes up occasionally.16:50
mw|out left16:50
fynn those local modifications are basically tweaks to conf files that are in the repo (to make them fit the specific host)16:50
so what we did thus far was copy .git over to /somedir, 'git add -p' to preserve changes, and then 'git checkout .'16:51
(cherry-pick changes, really)16:51
offby1 You're soon going to be told about "git-update-index --assume-unchanged"16:51
fynn was told about it yesterday ;)16:52
offby1 ah, that was you. Of course :)16:52
fynn sure, who asks all the interesting question around here16:52
offby1 did I also give you the lecture about "don't check in those config files; instead, check in _templates_" ?16:52
fynn yes you did.16:52
offby1 "that's what the #svn people say" ?16:52
ah.16:52
hence my dim recollection of all those things.16:52
fynn that's exactly what I thought, actually ;)16:52
offby1 I'm not convinced that git makes a ton of sense for what you're doing.16:53
I mean it'll probably work, but I don't think you're getting much benefit from it, as compared to ... I dunno ... some other way16:53
fynn I think it makes sense to use only templates in something centralized, but not in something distributed16:53
offby1 channels RandalSchwartz16:53
offby1 fynn: ooh, good point16:53
fynn I'm definitely open to suggestions...16:53
offby1 just as I have a repository with my personal modifications to the Emacs source code (which upstream will never want)16:53
fynn not sure I see the disadvantage. git is fast, space-efficient, bug-free...16:54
right, exactly16:54
offby1 ... you have repositories with "local" (i.e., per-web-server) modifications to config files ...16:54
... each time they "pull", those modifications are nicely preserved ...16:54
hmm16:54
fynn and it's very useful, since the customer sometimes makes silly changes to his tweaked confs16:54
and then we need to revert those locally to the last working version.16:54
offby1 fynn: I think you should nose around in the Ruby world -- I suspect that if anyone has experience with what you're trying, it'd be those guys.16:54
oho!16:55
fynn yeah, to be quite honest, I'm happy with our setup :)16:55
offby1 these web servers aren't under your direct control, but rather, under the control of your customers?16:55
fynn those aren't web servers :)16:55
offby1 well, whatever they are16:55
fynn they're client machines, running software.16:55
offby1 whatever.16:55
fynn and sure, we don't control them.16:55
offby1 ah.16:55
elmex joined16:55
fynn you mean whatevah16:55
offby1 that too.16:55
wot eva16:55
fynn you've outdone me sir16:56
they're laptops and desktops and such, and the clients possess them, unfortunately16:56
offby1 well, I've been at this for a while.16:56
this actually sounds pretty cool.16:56
fynn I mean, we did ask the clients to come and live in our server room16:56
but for some reason, they all refuse :(16:56
eno joined16:56
offby1 so to distribute a new release, you in effect tell those clients to just do a "git pull"16:56
fynn right.16:56
offby1 I've wished Debian would distribute its releases that way, but for some reason they just keep ignoring me16:57
rmh3093 left16:57
fynn while preserving local tweaks to their conf files, which are usually necessary.16:57
elmex left16:57
fynn so basically, they pull all changes, except for foo.conf and baz.conf16:57
elmex joined16:57
fynn I think you call that "cherry picking"?16:57
offby1 fynn: amusingly, I've recently become a fan of a tool called "etckeeper", which keeps /etc in a git repository. Every time I do "aptitude update", it checks in the current state of affairs ... that's pretty similar.16:57
stousetstouset|away16:57
offby1 if they've committed their changes to foo.conf and baz.conf, they can literally do 'git pull', and their changes will be preserved.16:58
fynn offby1: yeah, it's reasonable for someone to copy my ingenious setup.16:58
offby1 there's always a risk of conflict, though.16:58
fynn offby1: usually, it's OK to just pull.16:58
i.e. we're aware of the fields which usually require local tweaking16:58
and thus we don't change them upstream.16:58
offby1 are the clients sophisticated enough to resolve a merge conflict on their own?16:58
fynn not really, not with a developer around.16:59
offby1 figgers16:59
fynn yeah, those dummies :(16:59
Mario_pygi16:59
offby1 at worst you could write a program that invokes "git pull", and sends email to you if there's a conflict17:00
a "wrapper", as it were.17:00
So to speak.17:00
Not to put too fine a point on it.17:00
fynn not a bad idea. also, as long as we make sure not to touch those "locally-tweaked" fields upstream, we're probably safe from conflicts.17:00
offby1 (there's a cat attacking my keyboard; if I appear to spaz, that's the reason)17:00
fynn the email thing is a nice touch, what we get right now is a phone call from the client17:01
offby1 in a perfect world, you wouldn't have to be mindful of those special fields17:01
fynn offby1: yeah, good excuse, now you can say something really offensive17:01
how so?17:01
in a perfect world, where clients are all masters of DVC?17:01
rmh3093 joined17:01
offby1 wouldn't your developers rather just hack as they see fit, without having to remember "oh yeah, can't touch the [blarg] section because our customers may have tweaked it" ?17:02
fynn it would be nice, though it's generally not a huge deal; all those fields are in config files, and we generally hack on the code, rather than on those...17:02
offby1 in a perfect world, where your developers handle the occasional merge conflict as it arises, but don't have to think about it before then17:02
well, OK, then; you've convinced me you've got a decent setup17:03
fynn that's pretty much as it is right now :)17:03
yeah, almost always, the only change to conf files is, we add fields when we add configurable features.17:03
so we almost never do anything but add lines to the file.17:04
offby1: thanks for discussing this with me, was fun.17:04
offby1 mmrph.17:04
fynn assumes that was "you're kindly welcome" in Klingon17:05
jackdempsey joined17:05
offby1 something like that17:06
<kaching>Thank you, come again!17:06
GNUtoo joined17:08
GNUtoo hello, i've forgetten to do git-add and to commit to my personal git repo for some time so i did a git-add * in my code folder(2.7GB inside) and git-add says: fatal: Out of memory, malloc failed...what should I do?17:13
stouset|awaystouset17:13
GNUtoo should I do a shell script that add each folder in the root directory separately17:14
cehteh 2.7gb?17:15
youve written a lot of code :)17:16
GNUtoo ah no...there is a file that shouldn't be there...i don't know what that's file and why it's there17:17
cehteh lol17:17
its your folder :P17:17
GNUtoo now it works...no more malloc faillure...17:18
xenoterracide left17:18
GNUtoo sorry for the annoyance17:18
cehteh suggests to do small logic commits instead all at once17:18
GNUtoo yes i used to do that17:18
xenoterracide joined17:18
cehteh git gui may help there17:18
or git commit --interactive17:19
DarkShad1w joined17:19
GNUtoo ok thanks a lot17:20
leethal joined17:21
bcarlyon|laptopBarryCarlyon17:23
ciaran joined17:23
ciaran left17:24
ciaran joined17:24
DarkShad1w left17:30
cedricv left17:30
perezd88 joined17:31
elendal left17:32
stousetstouset|away17:40
robinr left17:44
rmh3093 left17:47
cedricv joined17:47
rmh3093 joined17:47
d0k joined17:58
Ramblurr left17:59
thedoctor left18:03
perezd88 left18:12
coderdad left18:12
threeve joined18:12
rphillips left18:13
rphillips joined18:13
stouset|awaystouset18:15
careo_careo18:17
coderdad joined18:20
peeja joined18:21
peeja I'm trying to track references to commits for a continuous integration system. is maintaining a ref in the $GIT_DIR a good way to do that?18:23
and do I just touch it and git update-ref it, or is there a command for creating refs?18:23
doener git update-ref also creates new refs18:23
peeja even better :)18:24
man, git rocks my friggin' world.18:25
coderdad left18:26
offby1 shake it, but don't break it.18:26
stouset left18:28
Tv left18:29
Ramblurr joined18:31
bieneff joined18:33
coderdad joined18:34
rphillips left18:36
jm joined18:37
bobesponja joined18:40
rphillips joined18:40
rphillips left18:41
xanonus left18:43
koke joined18:47
careo left18:48
careo joined18:49
dreiss joined18:49
Ramblurr left18:53
harinath left18:56
jm left18:56
coderdad left18:56
Ramblurr joined19:02
rolfb joined19:05
garbas joined19:07
garbas hey guys, is there any githg extension for mercurial? like gitsvn for subversion.19:08
bobesponja left19:08
abbe left19:09
offby1 I think you can use "git fast-import" or something19:10
although that might be just a one-time thing19:10
garbas offby1: yes, i would want to push some code after few changes. i see there is a was for hg to "read" git repos.19:11
cedricv left19:12
offby1 I would expect git, hg, darcs, monotone, and bzr all to interoperate (at least in theory)19:12
there's something called "tailor" that might do that19:12
garbas gugling19:13
offby1 http://progetti.arstecnica.it/tailor19:14
I suspect it doesn't work well, but then I'm a pessimist.19:14
komplex joined19:18
garbas offby1: hmm i think i'll stick with sending patches :P tnx anyway19:18
mediogre left19:19
BarryCarlyon left19:22
stopsineman joined19:22
stopsineman Hello All19:22
dave_h_d left19:22
stopsineman Anyone home?19:22
iulian left19:23
fhobia joined19:25
bremner who wants to know?19:25
stopsineman n00b git guy. :)19:26
I'm trying to figure out the easiest way to ditch my google code hosting in favor of git19:26
bremner ooh, ok then. Welcome!19:26
stopsineman Figured I'd check in here and see if there are any smart people to help me :)19:26
bremner ahh, what do you need, just public hosting of a free project?19:27
stopsineman Not even19:27
I just have a few personal projects that I want to SCM and I'm attracted to Gits local features with the option to publish at some later date (I am looking into github but that'd be later on I think).19:28
bremner do you have somewhere you can ssh to?19:28
Ramblurr left19:28
stopsineman I basically just want to import my subversion history in the cleanest, lowest noise way possible with no intention of returning to subversion19:28
bremner I assume you have a bunch of projects in the svn repo?19:29
stopsineman nope, I've stuck with the single repo per project model19:29
bremner wow, I keep making it harder than necessary19:29
stopsineman Yeah, I'm really a newbie so I'm sure this is very simple19:29
I was just getting a little tired of googling19:30
bremner stopsineman: so git-svn should work fine.19:30
Voker57 stopsineman: http://tsunanet.blogspot.com/2007/07/learning-git-svn-in-5min.html19:30
stopsineman So the clone command is what I want?19:30
bremner mkdir project && cd project && git svn init $SVNURL && git svn fetch19:30
ahh, maybe. Things change faster than I can keep up19:30
stopsineman I read [here](http://www.newartisans.com/blog_files/diving.into.git.php) about a -no-metadata switch that does something19:31
Sounded somewhat tasty but I couldn't figure out exactly what it filtered out19:31
jm joined19:31
bremner I don't usually bother with anything fancy19:32
cedricv joined19:32
jogla git status takes several seconds to complete, why is this?19:33
it used to be very fast a few weeks ago.19:33
Voker57 much files on repo?19:33
bieneff left19:33
jogla find | wc -l19:33
Voker57 it has to check for modification on every one19:33
jogla 1037519:33
Is that much?19:33
Shezi joined19:33
jsimonss left19:33
Voker57 for two seconds it's ok19:34
stopsineman OK, well I've g2g, but that looks like what I was looking for. Thanks for the help bremner.19:34
Voker57 it's like 7 sec here on big project19:34
bremner stopsineman: no problem19:35
jogla what does 'big project' mean?19:35
stopsineman left19:35
jogla Voker57: How much files and how much mega bytes do you have?19:35
sstangl jogla: mb doesn't matter, only number of files tracked19:35
Ramblurr joined19:36
Voker57 342 mb and lots of files in nested dirs19:36
dunno how to count'em19:36
ah19:36
find | wc -l 1232419:36
name joined19:38
jogla than we have a similar amount19:39
rdavila joined19:39
doener jogla: nfs?19:40
jogla No19:40
ext319:40
doener hm. Should definitely not take that long. linux-2.6.git (25k tracked files) takes 0.1s with hot caches19:41
jogla If i were using nfs, i would probably put 10 threads in git status to screw up my cpu and everything else just to speed it up 2 seconds ;)19:41
Voker57 doener: with hot caches, yes19:42
jogla doener: its after doing something different for a while19:42
Shezi left19:42
Voker57 time git status > /dev/null19:42
git status > /dev/null 0.04s19:42
jogla with hot caches, it is as fast as print 'Hello World'19:42
real 0m0.160s19:43
Hmm..19:43
slower than yours19:43
with less files19:43
ah, its an encrypted file system.19:43
gonzo- left19:46
rdavila left19:47
coderdad joined19:49
segher real 0m0.548s on the GCC tree19:50
and that's a lot bigger than the linux tree19:51
git is *way* too fast :-)19:52
Weaselweb left19:52
Sigma joined19:53
shd segher: what did you do?19:53
segher: git status?19:54
Weaselweb joined19:54
jsimonss joined19:54
ciaran_ joined19:54
ciaran left19:54
ph^ left19:55
gonzo- joined19:56
davidfetter joined19:56
segher time git status > /dev/null , like voker5719:57
jsimonss left19:57
shd segher: what about cold cache?19:59
segher how do i get a cold cache :-)20:00
shd linux 2.6 git tree gives me 24.3s vs 0.31s20:00
echo 1 > /proc/sys/vm/drop_caches20:00
(as root)20:00
segher well exactly. i'm not root on my dev box20:01
chris2 joined20:01
shd well, the alternative is to do: cat bigfiles >/dev/null20:01
charon shd: didn't linus say on the list that you need to 'echo 3' as one bit is for the metadata and one for the actual contents?20:01
shd or write lots of data from /dev/zero to file20:01
segher that will a) only throw away part of the cache; and b) this box has 16GB of ram, it's pretty hard to kill that cache no matter what20:02
shd charon: yes, it seems so. echo 1 -> 16.5s, echo 3 -> 24.8s20:02
coderdad left20:03
segher 25s isn't bad at all20:03
shd segher: can you try "svn status" on a gcc tre?20:04
segher let's see if i have one around20:04
shd time hg status gives me 14.9 vs 2.4s20:05
(on gcc tree)20:05
segher shd: do you want this on the same box?20:05
shd segher: preferably yes20:05
segher i'll do a fresh clone i suppose, give me a minute20:06
bobmcw joined20:06
segher oh, on another box with both -- and cold cache there, i haven't used it for six months or so :-)20:07
gottesmm joined20:07
segher cold:20:08
$ time git status > /dev/null20:08
real 0m21.604s20:08
user 0m0.312s20:08
sys 0m1.136s20:08
ciaran joined20:08
segher hot:20:08
$ time git status > /dev/null20:08
real 0m0.721s20:08
user 0m0.268s20:08
sys 0m0.452s20:08
DrNick git status consistently runs faster for me when not redirected to /dev/null20:09
segher $ time svn status > /dev/null20:09
real 0m26.394s20:09
user 0m0.728s20:09
sys 0m1.540s20:09
Voker57 left20:10
segher $ time svn status > /dev/null20:10
real 0m1.475s20:10
user 0m0.752s20:10
sys 0m0.460s20:10
bobmcw didja turn off the pager?20:10
shd segher: svn seems to be fast enough20:10
segher quite noticably slower though20:10
Ramblurr left20:13
coderdad joined20:13
charon left20:17
gonzo- left20:19
bieneff joined20:21
pygi left20:22
ia joined20:23
markelikalderon joined20:23
ciaran_ left20:24
fhobia left20:25
robberknight joined20:27
lu_zero joined20:30
drewr joined20:32
robberknight Hi, I'm trying to create a good config for a git hosting server. Each user with write access will get his own user-id with his authorized_keys and will be restricted to git-shell. I plan to use group-membership to control access. All repositorys will be placed under /srv/git.20:36
But now everyone must access svn://user@server/srv/git/repositoryname. Is there any way to reduce this to svn://user@server/repositoryname?20:36
aspotashev joined20:37
jast svn? this is #git. folks in here tend to know little about svn hosting stuff.20:40
but i think that was just a (repeat) typo. :)20:41
robberknight oops, i meant ssh20:41
just thinking too much of what I want to get away from20:41
jast i'm actually not sure if the ssh:// syntax allows relative paths20:42
suppose each user has /srv/git set as home directory, then user@server:repositoryname should work20:43
levander joined20:43
levander Is there a way to have git-log send it's output to emacsclient?20:43
robberknight yeah, but then i can't have individual .ssh/authorized_keys20:43
rmh3093 left20:44
jast well, one alternative might be to symlink all repositories a user has write access to into their homedir20:44
bgerber joined20:44
moccuo left20:44
rmh3093 joined20:45
robberknight ok, this would work. I'd have to write a script to always keep this up to date20:45
bobmcw or you could do magic with symlinks20:45
moccuo joined20:45
bobmcw $HOME/somerepo -> /srv/git/somerepo20:45
jast: sorry, didn't mean to dupe; I should read better.20:46
jast oh, don't worry, i'll live. ;)20:46
robberknight do you know of a more elegant way where i don't have to update lots of symlinks always i add or remove a repo?20:47
mugwump robberknight: the simple way you're looking for is to use a tool like gitosis, gitorious or repo that does all that stuff for you.20:47
or license github's software :)20:47
robberknight mugwump: do you have experience with any of these tools?20:48
jast psssht, you can't go and tell everyone the secrets of our success20:48
but seriously, gitosis is extremely cool20:48
the one downside is that only administrators can change keys and permissions and such20:48
mugwump I don't, but then I don't mind making a /git symlink20:48
and setting up users etc - already had all that infrastructure20:48
jast repo doesn't provide shortened paths, by the way20:49
robberknight the thing i fear most are security bugs in of the tools20:49
...in one of ...20:50
jast repo runs in a chroot20:50
ciskje joined20:50
jast including the sshd for its interface20:50
robberknight but when it's missing the shortened paths it won't help me or did i missunderstood that part?20:51
jast if you absolutely need the shortened paths, then no, you understood that correctly20:51
(repo isn't suited for most types of commercial hosting anyway since it doesn't support private repositories)20:52
robberknight i want to be able to move around the paths without the users noticing it20:52
i don't want to do "commercial hosting" as in taking money for hosting20:52
zewerson left20:54
jast just saying20:54
but in that case the symlink solution may be helpful for more than just shortening paths20:54
robberknight i want to be able to give nearly untrusted contributers their own repo without sacrifying security of the main project20:55
lu_zero left20:55
chris2 left20:55
robberknight i've seen too many disto break-ins (debian, fedora...) to not be concerned about that20:56
segher you could always hack up git-shell to do that repo shortening thing, and anything else you desire20:56
gerberb left20:58
rolfb left20:58
jast that might be difficult20:59
robberknight segher: yeah, but asking someone more familiar with the stuff could have saved me writing dozend of patches now all thrown out again20:59
jast git-shell is currently *very* small because that way it's a lot easier to verify that it's bug-free20:59
segher jast: certainly, but adding heaps of server configuration is adding complexity just the same21:00
jast well, if it's okay with you to manage all access configuration (including keys and such) yourself, via a fairly convenient interface, consider using gitosis21:00
robberknight just came up with another idea: telling sshd to look somewhere else for authorized keys21:01
segher sshd can do that just fine. if that is all you need, that might be the easiest solution for you21:02
mugwump it's pretty easy really - just make a unix group for each project and set them to shared=group21:02
robberknight it seems like this can be done with the AuthorizedKeysFile parameter in sshd_config - so every user would get /srv/git as home21:02
jast i think repo does this, in fact21:02
robberknight but i'll still take a look at gitosis, maybe it can fix some problem i'm not aware of yet...21:03
jast AuthorizedKeysFile /etc/sshkeys/%u21:03
jackdempsey left21:04
exon_ joined21:07
exon left21:07
moccuo_ joined21:08
d0k left21:13
dave_h_d joined21:13
lu_zero joined21:14
bartocc joined21:17
loinclot_loincloth21:19
bobmcw left21:20
GNUtoo left21:21
ivazquez1 joined21:23
moccuo left21:23
vuf joined21:24
nud where is the libgit2 repository gone?21:24
spearce joined21:25
frsk efhbhkhehgjftluvurntrfnlutvengkueghvuggctkjb21:25
Ah, damn, wrong window21:25
sorry21:25
scientes left21:25
exon_ left21:25
nud spearce: where is the libgit2 repository gone?21:26
looks like the url you gave at first is not valid anymore21:26
scientes joined21:26
spearce nud: http://www.speace.org/projects/libgit2.git ?21:27
spearce double checks the url...21:27
bartocc left21:27
spearce ah, git clone http://www.spearce.org/projects/scm/libgit2/libgit2.git21:27
vargadanis left21:27
bartocc joined21:27
nud spearce: wasn't it updated since 11/04 ?21:28
spearce unlikely21:28
i haven't had time to work on it in recent weeks21:28
nud ah ok21:28
spearce andreas has been doing work, but due to copyright concerns can't publish it yet as he's stealing code from git.git21:28
there's threads on git ml about getting permission to relicense under the libgit2 license21:28
lucsky that licensing thread is quite depressing actually21:29
nud ok21:29
I hoped there were some published code so I could put my hands in it21:29
I guess it's not worth the pain if there is a lot of new code to be published anyway21:30
BartVB left21:34
mosno joined21:35
MadCoder lucsky: I don't think so21:36
lucsky: I was quite surprised Linus actually agreed to the relicensing, and I would bet most other people would agree21:37
I think GPL+gcc exception quite makes a consensus21:37
spearce yea, i was shocked he agreed with the text.21:37
bartocc_ joined21:37
spearce most of the major contributors though appear to be ok with the text. which makes cribbing code from git.git into libgit2 reasonable.21:38
lucsky depressing in the sense that all this time babbling about legal crap could be spent on code21:38
threeve left21:38
MadCoder lucsky: well don't read [email@hidden.address] nowadays then21:38
drewr left21:38
lucsky MadCoder: not a chance :)21:38
MadCoder the thread on git@ is pretty short and straight to the point21:38
ivazquez left21:39
xanonus joined21:39
ivazquez1ivazquez21:39
jast yeah, the discussion about the license didn't take very long. personally i'd use a far more permissive license but this one probably gives the best chance of many people agreeing with the relicensing.21:43
Weaselweb left21:44
spearce a few of us were ok with a 3-clause bsd, but many of the core contributors weren't ok with it. we didn't want to lose their contributions.21:44
jast yeah, i'm not protesting or anything21:45
ijcd joined21:45
ijcd left21:46
MadCoder spearce: I'm even an MIT kind of guy when it comes to that btw, but oh well ;)21:46
jast i had this fuzzy idea of writing my own library with a strong focus on reading existing repositories and making the code more open towards scalability where the current git.git code isn't21:46
MadCoder the gcc exception is fine actually, I never thought about it, and I may reuse gplv2 + gcc for some projects of mine21:46
spearce yea, i'm happy with the gplv2+gcc too, but i haven't had the time to contribute to libgit2 in a while. :-|21:47
MadCoder jast: well git.git code scales quite well, unless you want to deal with _different_ repositories from the same process21:47
jast personally, in general, i'd consider using GPL 2+, LGPL 2+, Apache 2.0, BSD 3-clause, zlib licenses21:47
MadCoder spearce: I won't blame you21:47
I'm totally swamped in work21:47
danderson spearce: should that repo url be git:// ?21:47
MadCoder I barely had time to take care of the few patches I have sent to the list21:47
jast MadCoder, i meant things like requiring to keep files in memory for applying deltas21:47
which limits the size of files git can deal with21:47
MadCoder like the git-branch-filter one21:47
jast: bah, that's not really that a huge problem I think21:48
jast people have different needs21:48
MadCoder applying deltas is only done when you want a file or sth similar21:48
which is often asked by humans, hence is done seldomly21:48
gottesmm left21:48
MadCoder I'm more concerned with how the history is walked21:48
jast you need to apply deltas pretty much every time you read a file from a pack21:48
MadCoder current code is allocate-and-never-give-back21:49
jast and that happens when diffs are generated etc. etc.21:49
MadCoder which sucks badly for long lived processes21:49
sure21:49
but see, for a typical e.g. gitweb usage, git log is used way more often than diffs are generated or files shown21:49
jast and i had a couple of vague ideas on how to cut down memory usage for that21:49
MadCoder and people usually want the last diffs or files, which are usually at the "top" of the delta chains, hence cost little21:49
jast yeah, and git log needs to read a lot of objects from pack files21:49
pygi joined21:50
MadCoder objects that are very small and seldomly in delta chains I think21:50
jast to be fair i don't know how often this stuff gets delta'd21:50
spearce commits almost never delta; trees however are almost always in delta chains21:50
robberknight jast, segher, mugwump: thanks for the discussion about the server setup, think I now know what config I'll use21:50
jast and you're certainly right that typical gitweb usage doesn't apply deltas all over the place21:51
MadCoder spearce: yeah, but even for linux2.6 I would bet trees are not megabytes-huge21:51
probably more in the 10k21:51
spearce in pack v4 we decided to stop delta'ing commits altogether; there's no gain.21:51
MadCoder which is OK in memory21:51
jast are there some sort of specs for newer pack formats?21:51
bartocc_ left21:51
ph^_ left21:52
robberknight left21:52
spearce jast: its in my and nico's head, but beyond that there's a thread from a while ago http://thread.gmane.org/gmane.comp.version-control.git/4301621:52
jast thanks21:53
bartocc left21:55
lucsky left21:57
doener MadCoder: largest tree object in linux-2.6.git is about 34k. Having all tree objects unpacked would result in 1.3GB :-)21:57
jast spearce, are there any thoughts about polishing the delta mechanism? there's stuff like xdelta out there, after all, with a couple of advantages over git's delta format21:59
bentob0x left22:00
MadCoder doener: I see no reason to unpack them _all_22:00
my point was just that the all in memory stuff isn't particularily the worst issue with git.git and scalability22:01
doener MadCoder: that number was just a side-effect of me being to stupid to run the right command ;-)22:01
spearce jast: no, no other formats for the deltas was considered. there's also vcdiff which has some ability to be used in a more streaming fashion than the git delta format.22:01
doener MadCoder: but I found it quite interesting to see that the trees alone would take more than a gig, with the repo being just ~240MB22:02
jast spearce, yeah, xdelta is an implementation of vcdiff.22:02
_kid_ left22:04
_kid_ joined22:04
bieneff left22:04
Dreamer3pastie222:04
robinr joined22:05
bieneff joined22:05
coderdad left22:07
pastie2Dreamer322:07
moccuo_ left22:10
DrFrasierCrane left22:10
moccuo joined22:11
SmSpillaz joined22:12
xenoterracide left22:13
coderdad joined22:14
bobesponja joined22:16
xenoterracide joined22:16
johnw joined22:18
robinr left22:19
Ramblurr joined22:20
litage left22:22
johnw left22:25
johnw joined22:26
Sigma left22:27
xenoterracide_ joined22:27
fynn suppose I have a text file with 10 lines: 1-1022:27
do I understand the merge model correctly:22:27
if I add an 11th line between lines 6 and 7, all the lines from 7 onwards are "changed"22:28
right?22:28
xenoterracide left22:28
johnw no22:29
doener no. The new line 7 is added22:29
fynn OK, I'll explain my goal.22:29
I have such a file, with changes, in a certain branch.22:29
I'm merging from trunk, but there are some changes in the branch that I'd like to keep.22:29
xenoterracide_ left22:30
fynn so I thought, the best way to avoid conflicts in merging, is to keep the changed lines in the branch as close as possible to the top of the file.22:30
thiago_home merge will work fine as long as the lines close by don't change22:30
or the same line22:31
doener no, to avoid conflicts, you just don't change the same lines on both sides22:31
coderdad left22:31
doener (plus some lines around the changed ones, maybe=22:31
s/=/)/22:31
fynn but I did some experiments, and when I added a line above the changed one, there was a conflict in the merge.22:31
charon joined22:31
fynn conversely, when I added any number of lines below the changed one, there were no conflicts...22:31
(I thought it was because adding a line above the changed line caused it to be pushed downwards, while adding below it didn't change its relative position)22:32
Marmouset joined22:32
doener changing a line means deleting the old line and adding a new one22:32
bosie joined22:33
fynn OK, maybe I should retry some of the checks.22:33
doener so both sides added a line (different ones I guess), and one side additionally deleted a line22:33
elmex left22:33
xenoterracide_ joined22:34
aquabu joined22:37
Dreamer3 left22:38
aquabu left22:38
fynn doener: I just tried again and it caused a conflict22:39
doener as expected. You touched the same area on both sides22:39
jm left22:39
gottesmm joined22:40
schlort left22:42
Ademan__Ademan22:43
fynn doener, thiago_home: well, you were right.22:44
adding a line below also caused the conflict.22:44
rofrol joined22:44
fynn is there a clear explanation of how the magic of merge works? at least in git?22:44
segher it's magic, so it has no explanation :-P22:45
fynn I'm sure _somebody_ knows.22:45
binjured left22:46
jast the source code does. ;)22:46
fynn my goal is to arrange files in such a way that despite of downstream diffs, the number of conflicts would minimize.22:46
jast: too bad there's no Python version of it :/22:46
the logic is probably complex and reading it expressed in C is not going to be the funnest afternoon ever.22:47
jast you can still read it22:47
if you prefer, you can read the shell script version that used to be in git in 1.5.5 (and perhaps in 1.5.6 too, i can't remember)22:47
fynn anyways, something easier: how do I make it so 'git pull' in /repob automatically pulls from /repoa?22:47
jast that's a per-branch setting22:48
fynn OK, I want HEAD in /repob to automatically pull from HEAD in /repoa22:48
jast HEAD is not a branch, it's a symbolic reference to the currently checked out branch22:48
fynn I saw that in the config, but didn't manage to get it working.22:48
fair enough... say /repoa and /repob both have only a single branch.22:49
jast you can only configure this for an actual branch22:49
suppose that branch is 'master'22:49
fynn how do I do it? :>22:49
but I haven't branched anything, I just 'git init' and committed away :/22:49
jast yes, so you get a branch called master by default (you can verify this by using git branch)22:50
slypilot joined22:50
jast then, if the branch already exists locally, the easiest way is (currently) to create a section [branch "master"] in .git/config, and add the settings remote = someremote (i.e. the name of the remote you have added for /repoa) and merge = master (branch name in the remote repository)22:51
fynn jast: ah, I see.22:51
bosie left22:51
fynn I tried configuring it, and it didn't work because I didn't know about the master thingie.22:51
jast i think there are plans to add a command that creates this stuff for branches that already exist22:51
radarek left22:52
jast then it's a good thing you know it now. :)22:52
fynn non sense, who would keep the noobs in check then? bwahahaaha22:52
threeve joined22:52
jast because now you can be happy until the end of days. and all that.22:52
xanonus left22:52
fynn yes, and we need to make things complex, so the noobs would know their place.22:52
otherwise they get confident and eventually revolt.22:53
jast nah, the interface is getting refactored gradually to make all of these things easier22:53
you should have seen git in Them Old Days (tm)22:53
spearce when all you had was a shell redirection to HEAD. :-) git-commit-tree $(git-write-tree) -p $(cat .git/HEAD) >.git/HEAD22:55
and even that is i think somewhat modern. ;-)22:55
chris2 joined22:55
slypilot left22:55
fynn jast: thanks. it seems that if the line itself, or the line immediately after it, are changed, then there could be a conflict.22:56
if there's at least one un-changed line separating the changed line from the merged diffs, there wouldn't be conflict.22:56
so one strategy could be keeping an empty line or a designated area for stuff that could change.22:57
pygi left22:58
fynn argh, why is life so short.22:58
danderson in order to make us prioritize22:58
pygi joined22:58
trochala left22:59
fynn s/after/adjacent/23:01
mithro joined23:01
albalbertito23:07
coderdad joined23:08
k776 joined23:10
paroneayea left23:10
paroneayea joined23:10
gcv joined23:11
kumbayo left23:13
gitfoo joined23:15
gitfoo hi23:15
fynn left23:15
gitfoo does the commit object hold the branch(es) the commit belongs to? if not, is there a way to know to what branches a commit belongs?23:16
jast branch names are basically just symbolic references to a commit (the most recent commit in that branch, if you will)23:16
and each commit has references to its parent commit(s)23:16
johnw left23:17
jast so the thing you could do is look at all branch names and traverse the commit history from each referenced commit to see in which chains your commit shows up23:17
gitfoo jast: and is there a way to give git a SHA1 and know what branch has this commit?23:17
mugwump name-rev23:17
gitfoo mugwump: thanks23:18
charon git branch --contains $sha1 for the full list of candidates23:18
(how does name-rev choose? nearest?)23:18
slypilot joined23:18
ciskje left23:19
gitfoo charon: thanks23:19
mugwump ask gitte?23:19
mithro left23:20
gitfoo left23:20
peeja left23:21
gitfoo joined23:22
mithro joined23:22
litage joined23:23
moccuo left23:23
name left23:25
tvw left23:27
MadCoder charon: yes23:29
charon: it crawls every reference and choses the nearest one23:29
it's quite expensive23:30
especially the older the revision is23:30
slypilot left23:30
SmSpillaz left23:33
charon i see23:35
gitfoo MadCoder: does git branch --contains work like that too?23:35
leethal left23:36
leethal joined23:37
jast it has to, because it needs to walk the commit chains of all branches23:38
MadCoder I don't know, probably23:38
I never looked git branch --contains code23:38
+at23:38
I looked at git name-rev one :)23:39
Pupeno joined23:39
gitfoo ok :)23:39
Pupeno Using git-svn, how do I generate a patch that I can mail upstream to the svn maintainer?23:40
I mean, to the original project I svn cloned from.23:40
mugwump you don't use git-svn for that23:40
use git-format-patch etc23:40
offby1 there's a familiar nick!23:41
mugwump heh, nice to see you offby1 but I've got a date with my stomach ... later :)23:41
offby1 actually I meant Pupeno.23:41
MadCoder I believe --contains is slightly more efficient though23:42
it just need to check accessibility, not count distances23:43
jnareb joined23:43
gitfoo ok23:44
Yuuhi left23:47
leethal left23:48
xenoterracide_xenoterracide23:48
rphillips joined23:49
quoin joined23:50
qrush left23:51
mithro left23:52
pete__c left23:53
Pupeno Hi offby1.23:53
gitfoo how do I rewrite the message of a past commit? (no the latest one)23:54
Pieter git rebase -i23:55
tango_ gitfoo, git rebase -i, mark that commit as edit23:55
then follow the instructions23:55
gitfoo ok thanks23:55
pete__c joined23:55
charon left23:56
gitfoo tango_: doesnt work to modify the initial commit, it always show me starting from the second one23:57
Maerz left23:57
tango_ gitfoo, did you launch git rebase -i correctly? you should pass the sha1 of the commit BEFORE the one you want to modify23:58
doener tango_: _initial_ commit. There is none before that one ;-)23:58
SmSpillaz joined23:58
tango_ oh23:59
does using 0000 as initial hash work?23:59

Logs Search ←Prev date Next date→ Channels Documentation