IRCloggy #git 2009-05-26

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-26

bremner_ joined00:00
reprore__ joined00:02
mclem left00:03
drmclem joined00:03
reprore__ left00:03
bremner_ left00:04
reprore__ joined00:04
bremner_ joined00:04
reprore left00:05
drmclem left00:05
drmclem joined00:06
scarabx joined00:06
cads joined00:06
bremner_ left00:06
cads how do I create a new git in a directory, where I can add files and stage and commit?00:07
I know how to clone from git-hub00:07
RandalSchwartz go to the directory, type "git init"00:07
then "git add ." and "git commit"00:07
Nazcafan left00:07
RandalSchwartz that'll create an initial commit of the current file config00:07
RandalSchwartz waits for cads to catch up00:08
cads thanks00:08
RandalSchwartz if you had gone through teh basic tutorial, you would have seen that.00:08
I suggest you do the basic tutorial00:09
djgera left00:09
RandalSchwartz definitely not a waste of time00:09
cads yeah, I went through some github tutorial00:09
RandalSchwartz no - the one that comes with git00:09
highly recommended00:09
cads where's the basic tutorial00:09
memiux_ joined00:10
andres cads: "git help tutorial"00:10
memiux left00:10
andres cads: or man gittutorial00:10
Gitbot cads: the gittutorial manpage can be found at http://git.or.cz/man/gittutorial00:10
RandalSchwartz but don't look on the website00:10
it's on your disk already00:10
git help tutorial00:10
cads wow, nice00:11
tvakah joined00:14
dodo_the_last left00:15
tvakah left00:16
tvakah joined00:17
rettub_ joined00:18
Chani and why does git push not have --quiet either?00:18
mitkok left00:19
drmclem left00:22
hobodave joined00:24
Mkop left00:31
Zonker left00:32
tntcoda left00:34
almostautomatedalmostautomated|00:37
petercoulton joined00:41
nighthwk1 joined00:42
WinterWeaver left00:43
memiux_ left00:47
memiux joined00:47
mithro joined00:48
memiux left00:51
memiux_ joined00:51
_ joined00:53
_Guest641100:53
talexb joined00:54
sfwc left00:56
Pieter man git-update-ref00:56
Gitbot Pieter: the git-update-ref manpage can be found at http://git.or.cz/man/git-update-ref00:56
Guest6411 left00:58
Guest6411 joined00:59
cads left00:59
montylounge joined01:00
ia joined01:04
memiux joined01:05
memiux_ left01:05
bwwww joined01:07
ben_h left01:08
scarabx left01:11
Guest6411 left01:11
Guest6411 joined01:11
Radar left01:14
Radar joined01:15
solydzajs left01:18
SRabbelier left01:18
memiux left01:23
markelikalderon left01:23
reprore_ joined01:24
memiux joined01:27
jrmuizel left01:28
joshthecoderjoshthecoder_afk01:29
schacon joined01:30
mithro left01:38
mithro joined01:38
squentin_ left01:41
markelikalderon joined01:41
montylounge left01:45
jrmuizel joined01:46
reprore__ left01:47
jrmuizel left01:47
Guest6411 left01:49
jrmuizel joined01:49
Guest6411 joined01:49
reprore__ joined01:52
WALoeIII joined01:55
repro____ joined01:55
ajonat left01:56
cedric_ joined01:56
reprore_ left01:57
codebrulee left01:57
xorg62 joined01:57
bwwww left01:59
cemerick joined02:00
limx__ joined02:00
reprore__ left02:04
Guest6411 left02:05
cemerick left02:05
jksz joined02:06
jchris joined02:07
travisjeffery joined02:08
limx__ left02:13
Guest6411 joined02:13
Minimiscience joined02:14
reprore_ joined02:14
wmoxam joined02:16
parth-vader joined02:19
parth-vader left02:19
blaenk left02:20
cytrinox_ joined02:21
lmarinho joined02:27
memiux left02:27
blaenk joined02:29
repror___ joined02:31
repro____ left02:31
bgerber joined02:37
JasonWoof joined02:38
RurouniJones joined02:40
Guest6411 left02:42
TekLok joined02:42
summerbug joined02:47
Mkop joined02:48
reprore_ left02:48
memiux joined02:50
tjafk2 joined02:52
Guest7710 joined02:54
Guest7710 hello.02:55
Guest7710UltraBob02:55
UltraBob have a (probably stupid) question02:55
montylounge joined02:56
UltraBob I am in a situation where I am in a subnet and have a local ip address, and it is not feasible to accept ssh connections. I am connecting to a server that does have a public static ip, so basically my connection is one way02:56
ericindc_ joined02:56
x_or joined02:56
UltraBob I can connect from my local machine to the server, but not the other way around02:56
my thought is to have a master repository locally where I work on files and then push them to the server02:57
my question is how do I clone my local repository onto the server, and then how do I manage pushing to it?02:58
cehteh isnt that the common case?02:59
i mean i dont use my server to call my laptop02:59
montylounge left02:59
cehteh what do you mean by 'master' repository .. git makes no such distinctions03:00
UltraBob ok, that was just a distinction in my mind. like I said probably a stupid question, but I'm not getting my head around it todday03:00
cehteh usually you have the one (or more) where you work on and publish your work on some server03:00
UltraBob so in this common case how do you do it?03:00
cehteh the repository on the server should be bare03:01
you work and commit locally and push that up to the server03:01
if you server is shared between developers, other may push there too .. in their own repository, or in their own branches, or maybe even in some central merge branch (master?)03:02
UltraBob ok, I didn't explain in enough detail03:02
I want the rep on the server to be usable as a directory in the website03:02
ekristen joined03:03
UltraBob I am editing plugin files locally and then when I push them, I want them to be in the same form on the server03:03
ekristen how do I checkout a repo up to a specific commit id?03:03
incognit_O_ joined03:03
cehteh UltraBob: thats little more complicated because it cant be bare then, actually its not recommended03:03
hobodave left03:04
incognit_O_ maybe... :-))03:04
ati gasit si cripta si mausoleul ?!!?03:04
cehteh but well we do that with our website too :) .. usually you reset the working copy in the post-recieve hook , there are examples laying around03:04
incognit_O_ Maus-o-leul ??03:04
UltraBob cehteh I suppose I could have a bare repository on the server and then run a script to log into the server and pull to a working rep on the same server03:05
Minimiscience left03:05
joshthecoder_afkjoshthecoder03:05
incognit_O_umbritool03:05
UltraBob cehteh with that second rep being the one in the web directory03:05
dreiss joined03:05
cehteh UltraBob: yes that would work too03:05
umbritool La Festa si La Fildes sunt nebunii !!!03:05
umbritool left03:05
cehteh http://lumiera.org/.git/hooks/post-receive << our hack, not the best/recommended way but works03:06
ekristen: prolly you want to create a branch for that? .. git checkout -b temporary-work $sha103:07
ekristen thanks03:07
UltraBob cehteh ok, so if you can help me develop this a little further. assuming I go twith the two reps on the server route. first I create a bare rep on the server, then I need to 1) clone my local rep to it. 2) clone that rep to my working copy 3) figure out how to push to the bare rep. Could you help me with how to do 1 and 3?03:08
sfwc joined03:08
cehteh UltraBob: just similar in a post-recieve hook03:08
first you set it up git clone /path/to/bare public_checkout03:09
summerbug_ joined03:09
blaenk left03:09
sfwc left03:09
jrmuizel left03:09
almostautomated| UltraBob: not sure of your traffic; but you might also want to think of using 3 repos. 1 bare, then two that you'd switch the load to via apache ( or whatever you use ) It'd suck to cause errors for currently connected sessions03:10
chocolate_jesus left03:10
MachX joined03:10
cehteh then you just add cd /path/to/public_checkout; git pull; to the bare post-recieve hook03:10
UltraBob cehteh can we use some pseudo connect info so I'm sure I understand? say ssh://my.server/path/to/rep03:10
cehteh maybe you have to unset some GIT_* env vars not to confuse git03:10
this was server local paths03:11
could be almost verbatim used, just with the correct paths03:11
ekristen left03:12
UltraBob see the place where I'm confused is with how to get my local data up to the bare rep on the server03:12
cehteh and the env unsetting (i never tried it this way, improvizing :))03:12
git push03:12
.. in steps:03:12
on your local03:12
git remote add myserver [email@hidden.address]03:13
then you can use git push myserver ...03:13
UltraBob aha!03:13
cehteh with some configs you can configure what to push by default or just give branches explicitly03:13
UltraBob that was the part I couldn't get to come to the surface from when I was first experimenting with git a few months ago03:14
cehteh you could use that w/o registering the remote too03:14
git push [email@hidden.address] ...03:14
UltraBob so you can push to a bare rep with nothing in it?03:14
cehteh or use ssh:// urls .. whatever you prefer03:14
UltraBob no need to establish any connection there first03:14
cehteh yes, actually thats the way i prefer to initialize repos03:15
mkdir project; cd project; git init --bare03:15
WALoeIII left03:15
UltraBob cehteh ok just for further personal fortification. Say that I then tried to run a push from a completely seperate repository to that same bare rep, what would happen?03:15
cehteh there are some other spells to do that, rsyncing it up or cloning will work too03:16
lmarinho left03:16
cehteh depends on what branches you push and what state they are03:16
jchris left03:16
cehteh usually git refuses to do destructive things but allows fast forwards03:16
UltraBob say that I have rep a which contains one project and rep b which contains a completely seperate project03:17
cehteh you can even configure the server side to refuse to override it03:17
UltraBob I set up a bare rep and push to it from a and then push to it from b03:17
it would refuse that by default?03:17
cehteh in theory you can push completely unrelated prokects into one repo03:17
git only knows about heads (branches and tags etc) it doesnt know about projects03:18
of course if both projects have a 'master' and you try to push these as master on the remote git will notice that these have nothing in common and refuse to do so03:18
UltraBob cehteh, I need to go read the documentation again, but this has been invaluable (I think, actually trying it will be the test) for getting me up and going quickly. Thanks!03:18
cehteh well keeping more than one project in a single repo is very uncommon03:19
(except kde .. but :P)03:19
blaenk joined03:19
RurouniJones left03:25
RurouniJones joined03:25
bousquet joined03:26
sakyamuni joined03:27
bousquet Why does git think my css file is a single line? Multiple changes to it get recorded as 1 deletion, 1 addition (the whole file)03:27
offby1 interesting!03:27
I dunno but will be curious to hear the solution03:28
kwirky0 left03:28
summerbug left03:29
sfwc joined03:30
orafu joined03:33
cedric_ left03:36
brizly joined03:36
jony joined03:37
Radar left03:37
Radar joined03:37
solydzajs joined03:38
Radar left03:38
Radar joined03:39
sfwc left03:40
MachX left03:44
bousquet Anyone have any ideas on this? - Why does git think my css file is a single line? Multiple changes to it get recorded as 1 deletion, 1 addition (the whole file)03:44
almostautomated| well, that was definitely an interesting read: http://userweb.kernel.org/~junio/200810-Chron.pdf03:44
reprore joined03:45
kmap joined03:46
DrNick bousquet: are you on a Mac, by chance?03:46
bousquet yeah03:48
is there a binary flag or something that's getting set accidenatally?03:48
repr_____ joined03:50
repror___ left03:50
sfwc joined03:56
memiux left03:58
cedricv joined04:00
srid joined04:02
offby1 perhaps each change is modifying the line separators?04:03
jony left04:05
reprore left04:09
bousquet not sure, i haven't been working across win/osx04:09
summerbug_ left04:12
k0001 joined04:13
Mkop left04:16
bousquet DrNick: any ideas?04:19
solydzajs left04:21
almostautomated|almostautomated04:21
srid left04:23
joshthecoderjoshthecoder_afk04:23
scarabx joined04:30
bousquet_ joined04:31
jchris joined04:32
bousquet left04:32
travisjeffery left04:32
schacon left04:33
schacon joined04:35
bousquet_ left04:35
bousquet joined04:35
leachim6 left04:36
sfwc left04:39
sfwc joined04:40
jrmuizel joined04:41
kate21de joined04:42
jrmuizel left04:42
schacon left04:43
cxreg bousquet: sounds like some autocrlf issue04:45
schacon joined04:46
Flathead joined04:46
jchris left04:47
jrmuizel joined04:47
priidu joined04:48
bousquet so how do I force it to be treated as a text file?04:51
brizly left04:53
brizly joined04:54
schacon left04:55
schacon joined04:55
solydzajs joined04:57
cxreg bousquet: is there a .gitattributes file anywhere?04:57
bousquet cxreg: not yet04:57
cxreg Mac OS used to use only \r as line separators, I wonder if that's what DrNick meant04:58
ericindc_ left04:58
cxreg lacking \n, git would think it's just one line04:58
schacon left04:59
bousquet ah, that could be it, i don't think this has been touched by windows. which a lot of the newline results mentioned04:59
schacon joined05:00
almostautomated is pretty sick of newlines and windows.05:00
cxreg not being a Mac user, I'm not sure how to tell you what's going on there..05:01
try something like this?05:01
perl -ne 'print if /\n/' my-style.css | wc -l05:01
thiago_home joined05:01
bousquet 005:02
DrNick yeah, git assumes that line endings are LF and has code to convert DOS/Windows CRLF line endings, but no support for old-school Mac CR line endings05:03
solydzajs left05:05
scarabx left05:05
curvature joined05:06
bousquet interesting.05:06
cxreg if you dont mind fixing your newlines (and you should), try perl -pi -e 's/\r/\n/g' my-style.css05:06
ankit9 joined05:07
bdowning_ joined05:08
jony joined05:08
bousquet cxreg: ok, dope. that looks like it did the trick. git is showing each line now when i diff in the working dir05:08
davidfetter joined05:09
bousquet cxreg: do you guys usually run with config.global autocrlf = true?05:10
bdowning_bdowning05:10
smiskis joined05:10
ajonat joined05:10
solydzajs joined05:11
cxreg I've never used it05:11
bousquet i don't have any windows users on the team. not even sure why this newline issue came up05:12
cxreg likely someone either with an old mac, or an old editor, or something?05:12
offby1 bousquet: I have that set when I use git on Windows, which isn't often05:12
bousquet yeah, maybe an old editor. this css was given to me from another dev, they probably use dreamweaver or something dumb05:13
roop joined05:13
agile joined05:14
hyperair joined05:17
jony1 joined05:18
schacon left05:20
psankar joined05:20
MrAwesome joined05:21
jceb joined05:21
schacon joined05:21
sea-gull joined05:21
schacon_ joined05:22
schacon__ joined05:23
schacon left05:23
schacon_ left05:23
jony left05:27
girishr joined05:32
seangrove joined05:33
robin joined05:36
petercoulton left05:37
tchan joined05:39
jrmuizel left05:40
NoOffenc joined05:40
thiago_home left05:42
repr_____ left05:43
bousquet left05:46
solydzajs left05:47
seangrove left05:47
almostautomated wonders if there is an automatic way of dealing with line endings in an _organized_ mixed line ending project?05:53
cehteh with gitattributes and a lot of magic05:54
eh even easier .. rtfm :)05:56
sunoano joined05:56
brizly left05:56
almostautomated hrrmmm auto crlf = input? I'm thinking more of a catch the dev error type thing05:57
seangrove joined05:57
cehteh how do you define a 'error'?05:58
robin left05:59
almostautomated The dev clones the repo with cauto crlf = on then tries pushing it; causes lots of yucky modified msgs06:00
We have two main dirs06:00
nighthwk1 left06:00
NoOffenc left06:00
almostautomated One is from Scintilla and the other is PowerEditor06:00
nighthwk1 joined06:00
almostautomated PowerEditor is crlf and Scintilla isn't06:01
So, there isn't an issue if git is setup right; but if it isn't I'm just wondering if there'd be an 'automatic' way to catch it06:02
cehteh i am not very used to this crlf think .. but there is either some way to preserve it or you can use a pre-commit hook to check for all kinds of policies you set up06:03
tansell what do people use for code review with git?06:04
almostautomated tansell: not sure I was surfing google earlier to find something but got side-tracked06:05
nighthwk1 left06:05
bla left06:06
almostautomated cehteh: that's what I'm thinking... pre commit hook checking the target dir and verifying the endings06:06
cehteh look at gitattributes too ..'filter'06:06
almostautomated thanks, will do06:06
aposada joined06:09
aposada left06:10
ohadlevy joined06:10
fridim_ joined06:10
ohadlevy hello, anyone willing to help with a strange git svn rebase issue?06:11
almostautomated go for it; not many will answer without a specific question06:12
ohadlevy I have a git-svn repo, I created a branch, worked on it, checkout master, merged the new branch, adn did dcomit, but now svn rebase fails06:12
complaining that some files do not exists in the index06:13
when doing a manual merge, its really strange, as those files were not modified at all06:13
in different directories etc06:13
sakyamuni left06:14
almostautomated ohadlevy: I haven't used git svn to go back to dcommit yet...06:16
ohadlevy almostautomated: well.. dcommit works, just rebase06:16
ph^ joined06:16
ohadlevy another thing to mention, I linked a file to a sub dir of the repo, and worked on it in some part of the time, could that mess up things a bit?06:17
almostautomated hopefully someone else will know... just hang out someone will likely answer.06:18
jceb left06:20
almostautomatedalmostautomated|06:20
godog joined06:20
blaenk left06:22
bschindler joined06:23
lohrun joined06:23
sakyamuni joined06:26
johan-s joined06:26
stuffcorpse joined06:27
mbroeker joined06:28
savonarola joined06:35
dterei joined06:35
savonarola left06:35
solar_ant joined06:36
solar_ant hi all06:36
is it possible that if I have a repository X06:36
that has two folder X/a and X/b06:36
that i can somehow clone only X/a06:36
kate21de left06:38
schacon__ left06:40
ajonat left06:44
bla joined06:47
sdiz solar_ant: no06:49
altern joined06:51
dreiss_ joined06:52
dreiss_ left06:52
altern left06:52
roop left06:52
galderz joined06:54
Freenode joined06:55
UltraBob left06:56
FreenodeGuest6531206:56
Freenode_ joined06:56
mbroeker left06:59
hyperair left07:00
gilimanjaro joined07:02
j416 joined07:02
ciskje joined07:03
hyperair joined07:05
ben_h joined07:05
mbroeker joined07:06
Tuomas joined07:07
ben_h left07:09
giallu joined07:09
Alinermedia joined07:09
dterei left07:09
bmalee joined07:12
bmalee left07:12
gilimanjaro left07:12
bmalee joined07:12
cxreg http://lwn.net/Articles/131657/ is an amusing read07:12
Guest65312 left07:14
khmarbaise joined07:14
Stravy joined07:15
tbf left07:16
tbf joined07:16
solar_ant sdiz: I have seen such kind of clone on compiz07:17
wonder how they made it possible07:17
wereHamster why *they*?07:19
you cloned a repository that was already split up?07:20
cxreg git-subtree maybe?07:21
roop joined07:22
qhoxie joined07:22
jmesnil joined07:23
solar_ant wereHamster: yes07:24
I just google and found out about git submodule add :)07:25
ok now I have another challenge07:26
I am able to add *~ to .gitignore07:26
but i also want to ignore config.php in the current directory07:27
and not in other directories07:27
i tried ./config.php07:27
wereHamster config.php07:27
solar_ant wereHamster: wont that ignore like config.php in all the directories?07:27
madduck joined07:28
wereHamster no07:28
err, /config.php07:28
man gitignore, as always ;)07:29
Gitbot wereHamster: the gitignore manpage can be found at http://git.or.cz/man/gitignore07:29
solar_ant :)07:29
sorry07:29
thanks07:29
JasonWoof left07:36
lucsky joined07:38
eMBee good afternoon07:39
can i tell git-status to list files that are ignored through gitignore?07:39
eMBee can't find such an option in the manpage07:39
dwmw2_gonedwmw207:40
charon eMBee: i think git ls-files can do that, through some combination of -i and possibly --exclude-standard07:40
marc_kdab joined07:40
charon eMBee: looks like git ls-files -io --exclude-standard does it07:41
jaeckel joined07:41
eMBee charon: which version of git do you have? that command gives a usage error in 1.6.2.407:42
jaeckel left07:42
jaeckel joined07:43
agenteo left07:43
eMBee -i -o works though07:45
charon hmm, "git version 1.6.3.1.345.g53491"07:46
{SD} joined07:46
Alinermedia left07:46
eMBee ah, seems the handling of single letter options has been improved :-)07:47
dvorak1 joined07:47
madduck left07:47
madduck joined07:47
Sho_ joined07:49
psoo joined07:51
ceyusa joined07:51
the_zeno joined07:51
gilimanjaro joined07:51
psoo left07:52
wshimmy joined07:52
charon ce8e88040 is the "culprit"07:52
Gitbot [git ce8e88040]: http://tinyurl.com/qfbrh4 -- parse-opt: migrate builtin-ls-files.07:52
eMBee :-)07:52
Sho_ left07:55
cao joined07:55
eMBee is there a convenient way to import a whole snapshot of a source tree (like an exported tree). currently i checkout some commit (where i want to apply the changes from the snapshot) then remove everything and untar the snapshot in its place. then commit as is...07:55
psoo joined07:55
Arrowmaster i thought there was something you could just feed archives to07:56
Sho_ joined07:56
eMBee yeah, that would be nice...07:56
charon eMBee, Arrowmaster: there are some scripts in <HEAD:contrib/fast-import/>07:57
Gitbot charon: I'm sorry, there's no such object: HEAD:contrib/fast-import/.07:57
charon meh.07:57
<HEAD:contrib/fast-import/import-tars.perl>07:57
Gitbot [git import-tars.perl]: http://tinyurl.com/ohuov6 [blob]07:57
eMBee looks, thanks08:00
jony1jony08:04
rshann_ joined08:04
GodEater joined08:05
tbf left08:05
wshimmy left08:06
eMBee ah, it imports to a seperate branch, good08:06
shruggar joined08:07
tbf joined08:07
roop left08:09
lbt joined08:10
Ademan joined08:10
klmann hi guys. is there a script/command that creates the pull request mails?08:14
eMBee hmmm, it creates a seperate branch with no ancestor, not good. unless i change my workflow08:14
klmann or is it done manually every time? does not look like that i.e. on the lkml08:15
charon eMBee: you can always graft it ;)08:15
klmann: man git-request-pull08:15
Gitbot klmann: the git-request-pull manpage can be found at http://git.or.cz/man/git-request-pull08:15
klmann thanks08:16
sea-gull can anybody explain why after checkout 'w' flag in the file mode diseappear?08:17
gaveen joined08:18
dwave joined08:18
eMBee charon: can you explain how to graft?08:20
charon eMBee: suppose $root is from your fast-import experiment, and $last is the last commit along the same ancestry in your "target" history08:21
eMBee ok08:21
Arrowmaster http://git-scm.org/gitwiki/GraftPoint08:21
charon eMBee: then you can do 'echo $root $last >> .git/info/grafts'08:21
which effectively tells git to pretend the parents of $root were $last08:21
eMBee to pretend, ah, ok08:21
charon then verify that the result is correct with gitk or similar, and then finally make them "real" by applying filter-branch08:22
eMBee ohhh08:22
dwave_ joined08:23
ceyusa_ joined08:24
eMBee was going to apply what he learned here: http://colabti.org/irclogger/irclogger_log/git?date=2008-12-19#l459 (esp: http://colabti.org/irclogger/irclogger_log/git?date=2008-12-19#l497 ) to set the commits. but graft and filter-branch seems much easier08:26
gitte joined08:27
ceyusa left08:29
tono joined08:31
targion joined08:33
rshann_ left08:36
Sho_ left08:37
up_the_irons2 joined08:38
dwave left08:38
psoo left08:38
Sho_ joined08:38
doener joined08:38
Sho_ left08:39
rshann_ joined08:39
Sho_ joined08:39
Radar left08:39
Lgb joined08:39
Radar joined08:42
eMBee i em getting: error: bad graft data: ...08:44
i just put two commitids on a line08:44
Radar left08:44
hyperair where did you see that error exactly?08:44
psoo joined08:44
Ilari eMBee: Do those two commit IDs exist? Are they complete (40 hex chars, with lowercase a-f)?08:45
naeu joined08:45
eMBee yes, i picked them with git show ...08:46
roop joined08:47
eMBee oh, hmm, maybe i picked the wrong thing08:47
hmm, no08:47
git show only lists the commit id08:47
tvw joined08:48
dwave_asksol08:50
niki joined08:51
disjunctor left08:51
bx2 joined08:58
wshimmy joined08:58
hutingung joined09:00
hutingung cool mibbit09:00
any1 can tel me which i should use GIT or SVN?09:01
reason?09:01
任何人?09:02
Ilari eMBee: Also, another reason for that might be that you created cyclic reference?09:02
hutingung 任何人在这里?09:02
Ilari EPARSE09:02
hutingung 测试工具的transalation09:02
意思吗?09:02
eletuchy left09:02
hutingung 无聊频道09:03
我退出09:03
hutingung left09:03
eletuchy joined09:03
Flathead left09:03
un|ogic joined09:04
eMBee Ilari: hmm, i have A--B--C, and then ran import-tars which created a commit X, and then set X C into grafts. X has no children, so nothing could cause a cycle here09:05
X has no other parents either09:06
smiskis What is GIT's bigest advantages except being able to have local repositories?09:07
rshann_ left09:07
markelikalderon left09:07
disjunctor joined09:07
intripoon joined09:08
wereHamster smiskis: being able to have local repositories sums pretty much all the other advantages up09:08
drizzd wereHamster: except better merge support09:09
wereHamster local repos allow you to edit/rearrange commits before you push those.09:09
drizzd a centralized system could do that as well09:09
wereHamster ather advantages are: stash, bisect09:09
eMBee speed, ability to fix history (git rebase -i is really great), efficiently manage many branches, powerful tools to handle complex commits, bisect is very nice for debugging too09:10
smiskis drizzd: Why is merging better.. than lets say SVN?09:10
drizzd smiskis: I don't know. I've never used SVN. Everybody just tells me so.09:11
eMBee up to 1.5 svn did not track merges at all09:11
which means you had to manyally take care of what you wanted to merge09:11
smiskis i must say git suffers from unintutive CLI.. just like older SCMs09:12
drizzd smiskis: I suppose a major reason is speed itself. Due to the slowness of centralized repositories, many merge strategies are infeasible.09:12
ohadlevy left09:12
smiskis okey.. thanx guys09:12
drizzd smiskis: improvements are always welcome09:12
mstrl joined09:13
eMBee git's commandline interface it not less intuitive than that of svn, really. it may just be a bit overwhelming if you look at all the commands available. but is easy if you follow a guide which tells you the most common commands and ignore all others (which you'll rarely, if ever, need)09:14
Octalot joined09:14
emdete joined09:14
smiskis eMBee.. i meant its as overwhelming as older ones.. like SVN09:15
emdete when i use git-apply, arent those changes committed? how can i achieve that09:15
eMBee smiskis: well, you were comparing to svn at first, so...09:15
drizzd emdete: git am09:15
smiskis eMBee: could you advice me on such make-it-feel-easy guide?09:15
ceyusa_ left09:16
emdete drizzd: thnks...09:16
drizzd emdete: git apply doesn't expect commit info09:16
eMBee anyone else have a good link for smiskis off hand?09:16
kraymer joined09:16
eMBee would need to look09:16
KingBug_ joined09:16
ferdy joined09:17
drizzd smiskis: I think the manual (not the manpages) is quite easy to read09:17
Ademan if I want to discard the changes I've made on a given file rather than resolving a merge, how would I do that?\09:19
eMBee generally, i think it is not relevant to compare the git commandline to gui tools. and as far as the commandline goes git fares well even compared to other modern scms09:19
and there are git gui tools (most notably gitk) which is really helpful in understanding the branches and history in your repository.09:21
drizzd Ademan: git checkout :2:file09:21
eMBee of all scm gui tools i have seen, gitk looks the best (comparing screenhots here)09:21
drizzd or is it :3:file?09:21
Ademan: it's in the 'how to merge' section of the manual09:22
Ademan alright thanks drizzd09:22
aspotashev joined09:22
drizzd ok, 1 is base, 2 is HEAD, and 3 is MERGE_HEAD09:23
drizzd has to remember that09:23
{SD} left09:24
Arrowmaster isnt there a shortcut for that stuff now?09:24
d0k joined09:24
Arrowmaster like --ours/--theirs09:25
doener git checkout --theirs/--ours <file>09:25
Ademan: did that "git checkout :3:file" work at all? AFAIK, it should not09:26
ceyusa_ joined09:26
doener and it does not :-)09:26
plasticine left09:31
Ademan doener: we tried the "nice" way with mergetool09:31
no luck at present though09:31
even after resolving the merge he cant commit, it says he still has a pending merge09:32
eMBee could grafts error be because there is no common ancestor between the two commits?09:33
hyperair no, that shouldn't be an issue09:33
you're changing the ancestor by grafting the tree09:33
jaeckel smiskis: try to have a look at the 2 git cheat sheets09:33
legnaleurc joined09:34
eMBee right09:34
jaeckel there are all often used commands listed and also the possible flows09:34
eMBee wonders what's wrong then09:34
dreiss left09:34
jaeckel http://git.or.cz/gitwiki/GitCheatSheet http://jan-krueger.net/development/git-cheat-sheet-extended-edition09:36
Stravy left09:36
sakyamuni left09:36
Stravy joined09:37
kraymer left09:40
plasticine joined09:40
struberg joined09:42
Ilari eMBee: Some nasty "invisible gremlins" on that line? Try to dump it using 'od -t x1'?09:43
eMBee: For instance, its surprisingly easy to type U+00A0 instead of U+0020.09:43
jksz left09:45
sadleder joined09:48
cedricv left09:48
mithro left09:48
eMBee no, possibly the fact that there was a tag and a branch witrh the same name pointing to different commits, causing confusion09:48
bschindler left09:49
ceyusa_ left09:49
eMBee now i only get an error if the commits are in the wrong order (even though that should work too09:49
but i still do not see a 'new' history09:50
git log of the branch with the grafted commit does not show any new parent, nor does gitk09:50
mithro joined09:55
mithro can a branch have a comment?09:56
wereHamster mithro: no09:56
a branch is just a pointer to a commit09:57
knitt1 joined09:58
ekristen joined10:02
ekristen left10:02
aqmaiu joined10:02
HG` joined10:04
fridim_ left10:05
targion left10:14
tvw left10:14
dvorak1 left10:16
bx2 left10:17
cousine_ joined10:19
eMBee is there any documentation for the format in the grafts file? i don't get it10:19
the parent comes first, and then the child?10:19
cousine_cousine10:19
doener eMBee: <commit> <parent1> <parent2>...10:22
eMBee ok10:22
doener i.e. the same format you get from --parents (rev-list, log, show, ...)10:23
emdete left10:25
eMBee hmm10:25
eMBee has no luck making it work10:25
eMBee ohh, restarting gitk help10:26
with grafts do i replace parents or add the?10:27
them10:27
aziz joined10:29
HG`` joined10:32
Grum eMBee: replace10:33
so for a merge you need at least 2 parents10:33
and for a root commit 010:34
petermarks joined10:34
eMBee ok, thanks. seems gitk is a little sensitive when reloading, restarting makes errors go away10:37
it becomes much clearer when you can see the effects of the graft actually working10:37
petermarks Newbie question: I want to keep track of which version of our code is currently in staging in the remote repository my team shares. I was thinking about using a branch called "staging" and pushing to it just after we deploy. Is this a sensible approach or is there a better way? Also, If we rollback the version in staging, how do I reset the staging branch to an earlier version?10:39
bschindler joined10:40
HG` left10:41
Hendu joined10:42
DavidKlein joined10:42
drizzd petermarks: you can always overwrite a branch using git push origin +staging10:43
petermarks drizzd: cool, so the + syntax completely overwrites a remote branch?10:45
drizzd yes, also push -f, but be careful with that. You don't want to rewrite a branch others are working on10:47
petermarks what about a slightly different approach: if I have a tag in my remote repository, can I set a branch in the remote repository to the tagged commit?10:48
codebrulee joined10:50
sfwc left10:52
sfwc joined10:52
parasti joined10:55
cxvii joined10:55
drizzd petermarks: You seem to think that remote repositories are anything special10:56
they are not10:56
every remote is a git repository just as much as your local repo10:56
the concept of remotes is simply there to ease synchonization between repositories10:57
anything you can do to your local repo you can do to your remote by pushing (synchronizing)10:57
eletuchy left11:00
ntoll joined11:00
mitkok joined11:01
up_the_irons2 left11:02
up_the_irons2 joined11:06
petermarks drizzd: what seems different about a remote repository to a local one is that I can't use most of the git commands on it directly (please correct me if I'm wrong). You seem to have to do things locally first then push them to a remote. However, branches seem to be a repository specific thing so doing something to a remote branch is a confusing concept to me.11:09
If I understand correctly, to do what I suggested I have to create a tag locally, push it to the remote. then push my local tag to the remote branch I want to set. Is that correct?11:10
codebrulee left11:11
adamtanner joined11:14
adamtanner_ joined11:16
adamtanner_ left11:17
runasand joined11:17
sgronblo left11:17
runasandninjarobot11:18
mitkok left11:19
jony left11:19
markelikalderon joined11:21
ankit9 left11:28
KingBug_KingBug11:29
cxvii left11:33
adamtanner left11:33
Moult_ joined11:34
markelikalderon left11:34
giallu left11:35
giallu joined11:36
Modius_ joined11:40
smiskis left11:42
tcurdt joined11:43
ciskje left11:43
psankar left11:44
tcurdt hey folks, git-svn question: right now I am tracking only trunk ... how do I make git-svn aware of the fact that a branch was added in svn? so I can also commit to that branch via git-svn11:44
just adding a svn-remote branch in the config?11:45
wereHamster tcurdt: add a new fetch refspec11:46
Modius__ joined11:47
bx2 joined11:51
zomg joined11:52
Nazcafan joined11:52
Nazcafan hello11:52
How can I track the commits that impacted a particular file ? (knowing that in my case the file is a driver)11:53
ph^ I'm trying to make a git hook on our shared repository to close redmine tickets, so I figured I should put a hook on the server, but I don't know which hook to edit?11:54
post-update? post-receive? I need one with revisions11:54
ericindc joined11:54
gitte Nazcafan: "git log -- <file>"11:55
Nazcafan ah thanks11:55
ericindc left11:55
wereHamster koenb: ah, that makes sense11:55
drizzd petermarks: that's one possibility. or you simply have a local branch pointing to the commit of your choice and push that11:55
gitte ph^: the documentation suggests post-receive. Did you read Documentation/githooks.txt?11:57
zomg Hi all.. I did a stupid mistake and I need to revert some lines of files back to the way they were before, preferably without killing the new stuff I added11:57
I'm quite new to git and not sure how I should approach this11:58
gitte zomg: Do you have any uncommitted changes?11:58
zomg Nothing that I don't mind losing11:58
=)11:58
gitte zomg: either stash it or commit it.11:58
zomg: that is a good practice in any case, if you want to do something slightly adventurous, start with a clean working directory.11:59
zomg Oh and there are few commits of these broken files11:59
gitte zomg: then you could use a combination of git checkout and git gui to revert the changes.11:59
zomg: in detail: "git checkout <known-good-commit> -- <file>" to get the old version back.12:00
zomg: then use "git gui" to unstage all, and then go through the modified files hunk by hunk (or even line by line), and only stage those reverts you actually want.12:00
zomg: then commit and stash.12:01
zomg: to clean up your branch, you could use rebase -i (but only if you haven't pushed in the meantime).12:01
zomg Thanks, that should help me get started =)12:01
ph^ gitte: thanks, I've tried to read, but I get confused with some of the terminology12:04
Modius_ left12:04
priidu left12:05
MisterN joined12:08
codebrulee joined12:10
Modius joined12:11
petermarks drizzd: thanks for your help12:12
hoohah joined12:13
hoohah hello. I'm unsure about a certain aspect of branch merging. Once I perform the merge, will *all* commit history be retained in addendum to the master, or it be considered as one (massive) commit?12:14
gitte hoohah: both.12:15
hoohah: it will add a merge commit which has two parents.12:15
hoohah gitte: no way to specify one or the other?12:15
i'm after the latter effect only12:15
gitte hoohah: there is no merge without a merge commit, except when there is nothing to merge.12:15
hoohah: probably you are looking for "git merge --squash"12:15
mitkok joined12:17
uau joined12:21
Modius__ left12:21
mobhawk joined12:23
tfoo joined12:24
memiux joined12:24
gaveen left12:25
tcurdt left12:25
gaveen joined12:25
hoohah gitte: ah thanks. So --squash basically creates one commit for the whole merge of the branch.. and I guess once that branch is removed, no history of commits can ever be identified with the affected files from branch12:26
gitte hoohah: correct.12:26
name joined12:27
hoohah do you have time for me to bother you with one last q?12:28
regarding git implementation in my $HOME to manage dotfiles, say I worked with multiple distros sharing the same home path during the day. Would it be advisable to implement git in a way such that master branch in git repo in ~/ contains all similar options, with branches created for the individual distros?12:29
and perhaps, somewhere in the distros rc.local, have git checkout respective branch?12:29
cmarcelo joined12:33
cousine left12:33
gitte hoohah: dunno. I'd try to have the distro-specific stuff in the files themselves, but that's just a personal matter. I do not track my $HOME with Git.12:34
hoohah gitte: yeah, for a while I was implementing cases left and right, but found that I needed logic beyond shell scripts (e.g. for apps like rtorrent whose version differs across distros)12:36
thereby requiring different configuration options12:37
i guess i'll just stick with what I'm doing currently12:37
gitte hoohah: so you answered your question yourself ;-)12:37
hoohah gitte: yeah hehe it seems i always end up doing that12:37
gitte: at least with an attentive ear, i can avoid talking to myself :)12:38
girishr left12:39
angerman joined12:39
memiux left12:41
LiamH joined12:41
bobmcw left12:45
jmesnil left12:46
jmesnil joined12:46
lorandi joined12:47
tcurdt joined12:47
tcurdt left12:48
boto joined12:50
leanucci joined12:51
solar_ant left12:51
eMBee yes, lack of versioned build dependencies is really an issue12:52
ooops12:52
hpoydar joined12:53
ShadeHawk joined12:54
ShadeHawk According to Google Summer of Code timeline the "community bonding" period ended, and students should have started working on their projects.12:55
ben_h joined12:55
scarabx joined12:56
ShadeHawk I wonder what is happening with our GSoC students (they didn't announce and introduce themselves on git mailing list), and with "foreign" GSoC students that work on projects related to git: hg-git from Mercurial, git# from Mono, Build Service from OpenSUSE, GitFS from Plan9, PyVCAL from Python12:56
gh34 joined12:56
wshimmy is quite busily hacking away ;)12:57
rshann_ joined12:57
ninjarobot ShadeHawk: you should poke the students12:57
ninjarobotrunasand12:57
runasand wonder why I had that nick :]12:57
tfoo left12:58
frsk You probably felt like a ninja when choosing it12:58
runasand anyways, some students might be busy with exams these days and a friendly poke wouldn't hurt12:58
frsk: I always feel like a ninja ;)12:58
frsk ShadeHawk: You were asking around for the students about a week ago too, right? (Or was that someone else?)12:59
qrush joined12:59
gitte wshimmy: what are you working on?12:59
frsk I recall gitte talking about the progress a few nights ago13:00
runasand hm.. there's only two GSoC students13:00
wshimmy gitte: at the moment, whipping some diff engine code into shape13:00
struberg left13:01
gitte runasand: there are more. With 150 orgs I'd estimate many more than two.13:01
wshimmy: oh?13:01
wshimmy exactly 1000, IIRC13:02
runasand gitte: only two working for git, I mean.13:02
gitte wshimmy: can I see some?13:02
wshimmy: I am working on a diff engine for JGit as much as my time allows (which is not very much).13:02
wshimmy gitte: sure. atm im just trying to adapt/extend some of the code thats used in monodevelop for generating hunks13:03
ShadeHawk wshimmy: what GSoC project (and what GSoC org) are you working on?13:03
wshimmy gitte: but its a bit old, and since git gives diffing much more exercise than the occasional svn addin, it needs a few more hooks and things13:03
ShadeHawk: im that evil mono student13:03
_rane joined13:04
BooK joined13:04
webcoder joined13:04
_rane hey, I have 'spec/spec.opts' in .git/info/exclude, but git status keeps saying modified: spec/spec.opts -- any ideas?13:04
gitte wshimmy: you are actually the first non-evil one for Mono. You talk to us, at least.13:04
wshimmy: that's more than can be said of most of Mono's mentors, too.13:05
ShadeHawk _rane: ignored is about files which are not tracked; if it is tracked (known to git) then ignore rules do not matter13:05
freelook1 joined13:05
wshimmy gitte: thanks - i like to think of myself as non-evil the majority of the time :)13:06
_rane so how would I get that file ignored locally?13:06
ShadeHawk Nice... from foreign GSoC students we have touched base (that I know of) with Build Service from OpenSUSE (on its IRC channel), GitFS from Plan (here); ........... PyVCAL somehow did vanish from list of Python projects for GSoC200913:07
ProperNoun joined13:07
ShadeHawk I don't know about hg-git project (Git backend to Mercurial frontend), ... and of course our student ...13:08
gitte wshimmy: nobody thinks of themselves as evil. Not even certain warlords putting part of the planet into misery while profiting from it.13:08
Pieter like Nero13:08
ShadeHawk well, I know that with graphical UI there is problem with bikeshedding on git mailing list...13:08
gitte ShadeHawk: search the channel log for "sea-gull"13:09
dodo_the_last joined13:09
gitte ShadeHawk: exactly. The UI guy also said beforehand that he'd be busy for one week these days.13:09
_rane ShadeHawk: .gitignore works as expected, but because it's tracked in the repo it doesn't produce the wanted results13:10
it doesn't seem to make any difference whatever I have in .git/info/exclude13:10
wmoxam left13:11
zomg gitte: after a ton of confusion and failure, I managed to fix the problem, create a patch and apply it. Thanks for pointing me to the right direction =)13:11
ShadeHawk Thanks for the info gitte13:11
gitte zomg: good that you have a solution!13:12
ShadeHawk: yw13:12
zomg with svn I would've been done an hour ago tho13:13
;>13:13
but I guess I'll just have to learn13:13
hehe13:13
ShadeHawk gitte: but sea-gull of GitFS for Plan9 I have met on #git13:13
memiux joined13:14
gitte ShadeHawk: oh, right.13:14
ShadeHawk: As for Hg-git, no, we haven't met (yet). According to SRabbelier, the mentor is intimate with the Hg-git project, so I guess we will be able to get into touch.13:14
krh joined13:14
andres How would you estimate the chances that a patch to add builtin support for context diffs is accepted (git and libxdiff)?13:15
boto_ joined13:15
ShadeHawk _rane: hmmm... .gitignore and .git/info/exclude work the same way, so unless you have some conflict (one file excludes, one file unignores) it should work or not work, and not that one works while other doesn't13:18
_rane: ignore rules are about *unknown* (untracked) files _only_13:18
davidfetter hello13:18
kukks joined13:19
cemerick joined13:19
davidfetter i've got a git-cvsimported repo, and would like to get to a particular CVS tag. how to do this?13:19
jrmuizel joined13:20
andres davidfetter: git checkout tags/tagname like normally?13:21
ShadeHawk davidfetter: check out "git tag -l" and/or "git branch -a" output13:21
davidfetter: where it is13:21
davidfetter andres, ShadeHawk, thanks :)13:21
kwatz joined13:21
davidfetter andres, this is in aid of testing the git-to-cvs migration :)13:21
andres davidfetter: I doubt that will happen that fast ;-)13:22
ShadeHawk davidfetter: and then as andres said: "git checkout <tag>" (it will detach HEAD, c.f. situation with sticky tags in CVS), or "git checkout -b <newbranch> <tag>"13:22
loincloth joined13:22
ShadeHawk davidfetter: git to CVS? not CVS to git?13:22
davidfetter er, cvs-to-git13:23
davidfetter has not yet had any coffee13:23
davidfetter and it's 0623 here in oakland :P13:23
bdiego joined13:23
andres davidfetter: now you just have to convice Davide or somebody else to add context diff support to libxdiff ;-)13:24
davidfetter do tell13:24
who's Davide and how do i reach him?13:24
andres The author of libxdiff13:24
davidfetter and is that what comes with git?13:24
andres yes.13:26
ShadeHawk more or less (git uses modified, enhanced and slimed down version of LibXDiff in xdiff/ directory)13:26
shana joined13:27
naeu left13:28
peteinlux joined13:29
scarabx left13:29
Modius_ joined13:29
khmarbaise left13:30
pete__ joined13:30
solar_ant joined13:30
boto left13:30
ryanew joined13:31
ryanew left13:32
ryanew joined13:32
peteinlux left13:32
wmoxam joined13:32
ShadeHawk wshimmy: By the way, do you know if there was any usable code produced by previous git# (managed git) projects at previous Google Summers of Code?13:33
wshimmy heh13:33
Arafangion joined13:33
Arafangion Hey, want's the easiest way to email a git repo?13:33
compress a bare repo and email?13:33
ryanew left13:33
hyperair has a horrified look13:33
hyperair why would you do that13:33
github!13:33
or something13:34
qrush Arafangion: yep13:34
wshimmy ShadeHawk: as far as im aware, thats a negative13:34
ph^ what is body as opposed to subject in a commit message?13:34
Ilari Arafangion: 'git bundle create foo.bundle --all'?13:34
Arafangion Ilari: Thanks, that's the example I was hoping for!13:34
Ilari: What's the inverse?13:34
wshimmy ShadeHawk: there was a student in 2007 that disappeared before the start of coding (got a job or something i think), so produced nothing; and last year 1 of 2 awol'd and the other one wrote garbage13:35
Ilari Arafangion: I think bundles support being target of fetch-type operations.13:35
Arafangion Ilari: Nice.13:35
MisterN wshimmy: "awol"? what's that?13:35
dodo_the_last left13:36
Arafangion MisterN: "Went away, without contact".13:36
wshimmy absent without leave, sorry13:36
Arafangion Usually without notice.13:36
MisterN oh13:36
Modius_ left13:36
ShadeHawk Arafangion: man git-bundle... or yes, compress and send13:37
Gitbot Arafangion: the git-bundle manpage can be found at http://git.or.cz/man/git-bundle13:37
MisterN GSOC doesn't seem to be very productive13:37
wshimmy MisterN: in general i think the majority of projects are fairly productive13:37
khmarbaise joined13:38
wshimmy it just depends13:38
Arafangion ShadeHawk: I think I might go the bundle approach.13:38
ShadeHawk MisterN: depending on project...13:38
MisterN wshimmy: dunno i've seen some projects have more hassle than benefit13:38
and git# adds to the list13:38
aziz left13:38
Modius_ joined13:39
ShadeHawk MisterN: from 6 projects Git had last year, 3 were complete success (builtin merge, fetch in Eclipse, git statistics), 2 produced code but are not included in Git (gitweb caching which is used by git.kernel.org, and unfinished but worked on git-sequencer), with only one fail (GitTorrent Protocol)13:40
gitte MisterN: it would be better if you encouraged the student, rather than discouraged him.13:40
MisterN: thank you for your cooperation.13:40
pete__ left13:41
MisterN gitte: huh? there's a SOC student present? and i think being sceptical is still allowed :P13:41
wshimmy skeptical is fine. but IMO its no hassle, and only potential benefit, so it works for me ;)13:42
gitte MisterN: you can be sceptical all you want, but if you discourage some GSoC student openly, you will get reprimanded by me.13:42
dodo_the_last joined13:42
gitte MisterN: so, stop it.13:42
MisterN gitte: i didn't want to discourage anybody13:43
Modius__ joined13:43
Modius_ left13:43
shana left13:45
shana joined13:47
rudi_s joined13:47
ShadeHawk By the way, that reminds me that SoC*Projects git wiki pages are not updated...13:47
gaveen left13:48
gaveen joined13:49
gberdyshev_ joined13:49
jrmuizel left13:52
Modius left13:52
gitte ShadeHawk: my Git time budget is way negative right now.13:53
nighthwk1 joined13:54
komplex joined13:55
rudi_s left13:55
Arafangion gitte: How is that possible?13:56
gitte Arafangion: very easy. You work too much on Git during the time you had other work to do.13:57
Arafangion gitte: Doesn't that affect the /other/ projects?13:58
priidu joined13:59
dvorak1 joined14:00
jony joined14:01
jonyjony|away14:01
hoohah left14:02
gberdyshev left14:03
squentin_ joined14:09
tango_ joined14:11
suman_g joined14:11
drizzd_ joined14:12
Modius_ joined14:12
aziz joined14:12
alezandro joined14:13
ben_h left14:13
Modius__ left14:14
girishr joined14:16
hyperair left14:20
hyperair joined14:20
bx2 left14:21
jchris joined14:21
mtvee joined14:22
priidu left14:22
plasticine left14:23
rshann_ left14:23
almostautomated|almostautomated14:24
priidu joined14:24
mstrl left14:24
Nazcafan left14:26
Lgb left14:26
flazz joined14:27
Lgb joined14:27
solar_ant left14:27
jrmuizel joined14:30
Nazcafan joined14:32
killerchicken_ joined14:33
parasti left14:34
killerchicken_ hey, I have a commit that fixes stuff from two different earlier commits. Is there a shorthand for doing a split of that commit, and then squashing the two parts into the appropriate commits?14:34
like "squash this commit, but only for those lines that affect the earlier commit"?14:35
I guess there isn't, but maybe I'm surprised :-)14:35
andres killerchicken_: you could split the current commit with add --interactive and then do a rebase --interactive and squash the commits belonging to each other14:36
killerchicken_ andres: well, the "current" commit is not the topmost commit here. I'd just do an interactive rebase to split the commit14:37
andres Well, thats nearly the same ;-)14:37
killerchicken_ that wouldn't be a problem at all, I was more wondering if there was something more specialized for the situation of fixing part of an earlier commit14:38
would make this one faster14:38
piyo joined14:38
charon killerchicken_: isn't the "only those lines that affect the earlier commit" actually AI complete?14:39
killerchicken_ hm?14:39
charon i mean, of course sometimes the overlaps will be textual, but sometimes they're just semantic fixes in other areas of the code, in which case a computer cannot decide which part affects what14:39
DavidKlein left14:40
killerchicken_ right. For me, they're all overlaps in line numbers14:40
summerbug joined14:41
Arafangion Hey, I've asked someone to compress and email me their bare repo, and I've got it now but it has no HEAD, though a quick glance tells me it obviously has the commits.14:42
How do I fix this? (HEAD points to refs: refs/heads/master14:42
RedShift joined14:42
RedShift hi14:42
Arafangion But it doesn't exist) - what is a liekly mistake? They used 7zip to compress it.14:42
Stravy left14:43
rudi_s joined14:43
ShadeHawk Arafangion: you can use git-symbolic-ref to change where HEAD points to14:43
wshimmy Arafangion: if its a bare repo you don't have a working directory14:43
RedShift I've got a question, so git is built for branching and merging, but what if I want to 'tag' a certain version of all files as a release?14:43
altrux joined14:43
RedShift like in CVS you have 'tags'14:43
Arafangion wshimmy: But surely it has a refs/master14:43
PerlJam RedShift: git has tags too14:43
Arafangion (Which it doesn't)14:43
d0k left14:44
RedShift I'm reading http://www-cs-students.stanford.edu/~blynn/gitmagic/ but it doesn't mention tagging as far as I've read14:44
ShadeHawk Arafangion: if it is bare repository, then "current branch" doesn't make sense (no branch is checked out), so HEAD might not exist14:44
ToxicFrog RedShift: man git-tag14:44
charon wshimmy, Arafangion: even in bare repos, HEAD is useful as it indicates (to some extent, the protocol isn't good enough to handle it all) the default branch that new clones should check out14:44
Gitbot RedShift: the git-tag manpage can be found at http://git.or.cz/man/git-tag14:44
Arafangion wshimmy: I tried to clone it, but it fails.14:44
RedShift thanks14:44
ShadeHawk Arafangion: refs/master instead of refs/heads/master is likely a mistake (e.g. in push refspec)14:45
wshimmy it should definitely have the refs14:45
Arafangion charon, wshimmy: There are /no/ branches, though it obviously has the contents.14:45
ShadeHawk Arafangion: dod you check out output of "git branch -a" and/or refs/packed-refs file?14:45
ToxicFrog RedShift: you can create light named tags (which are basically just alternate names for given commits), as well as heavier, cryptographically signed tags with message content.14:45
Arafangion It was a git --bare init; then from the original repo, it was a git push /path/to/bare/repo master14:46
ToxicFrog The man page has all the gory details.14:46
Arafangion ShadeHawk: The refs directory is entirely empty.14:46
ph^ left14:47
khmarbaise left14:47
ShadeHawk Arafangion: push, not fetch? Because fetch without refspec saves fetched head only in FETCH_HEAD14:47
khmarbaise joined14:47
Arafangion Actually, the utterly freaky thing is... All the directories are empty! (Wierd, I'm blaming 7zip!)14:47
ShadeHawk: Push, to populate the bare repo.14:48
charon Arafangion: umm, how do you know it has any contents when it's empty? :)14:48
Arafangion charon: I did an ls, and saw all the sha1's. :)14:48
charon: And missed that I shouldn't have seen them... As they should've been in objects.14:48
charon maybe you unpacked it "flat" to a single directory? the objects should all be in objects/xx/sha114:48
Arafangion charon: Looks that way, in which case 7zip is utterly idiotic.14:49
charon and you most likely have a ./master that should have ended up in refs/heads/ or so14:49
Arafangion charon: I expect so.14:49
RedShift ToxicFrog: nice, ty14:50
Lgb left14:50
SamB Arafangion: you did it that way with the GUI, or the CLI?14:50
d0k joined14:51
Arafangion SamB: The problem is 7zr, not git.14:51
SamB Arafangion: okay, the CLI then14:51
I was talking about 7-zip's GUI and CLI14:51
ShadeHawk RedShift: See also my answer about difference between Git and CVS here: http://stackoverflow.com/questions/802573/difference-between-git-and-cvs/824241#82424114:51
memiux left14:52
Arafangion SamB: The originator probably used the GUI, I'm using the CLI.14:52
willb joined14:52
Modius_ left14:53
Arafangion SamB: Do you happen to know how to tell 7zr to behave?14:53
SamB Arafangion: yeah, you often have to be careful when using archivers that originated on the PC ...14:53
Lgb joined14:53
Arafangion SamB: I can understand that, but this is frankly idiotic!14:53
Modius_ joined14:54
SamB Arafangion: oh, you use the "x" command14:54
not the "e" command14:54
cannonball joined14:54
Arafangion SamB: Wow. Thanks for your help!14:54
SamB according to 7zr --help14:54
asksol left14:54
lohrun left14:54
Arafangion SamB: I saw 'e Extract'14:55
SamB unrar uses the same commands for those activities ...14:56
Arafangion wishes everybody used .tar.gz, as God Intended. (The GNU version)14:57
johan-s left14:58
Arafangion Thanks SamB :)14:59
summerbug left14:59
Slashbunny I have a bunch of local branches associated with remote tracking branches- Is there an easy way to fetch/merge them all in one shot? It looks like the way to do it would be to check each one out and "pull" individually- is that how I should do it?15:00
Modius__ joined15:02
feanil joined15:02
roop left15:03
UncleCJ joined15:03
offby1 I think there's a "git remote update"15:04
UncleCJ Hi. Is there a good way to address the "branching point" commit between the current and some other branch?15:04
Modius_ left15:04
offby1 UncleCJ: git merge-base15:04
UncleCJ Hmm...15:04
charon Slashbunny: if you want to update the local (tracking) branches safely, yes ... you can optimize away the checkout by manually verifying that it'll be a fast-forward, but that's more or less it15:05
you could just drop the local branches and only use the remote/*/* family though, if you only fast-forward them anyway15:06
memiux joined15:06
ShadeHawk UncleCJ: git-merge-base (or a..b, usually), or branch.<name>.merge config variable15:06
UncleCJ ShadeHawk: What does branch.<name>.merge have to do with it, I thought that was for tracking branches?15:07
leo2007 joined15:07
leo2007 left15:07
UncleCJ ShadeHawk: What does branch.<name>.merge have to do with it, I thought that was for tracking branches?15:08
offby1: Indeed, merge-base does the trick!15:08
girishr left15:08
leo2007 joined15:09
gaveen left15:09
sadleder Slashbunny: the branches must be tracking15:10
ShadeHawk UncleCJ: to know the branch for git-merge-base15:10
Slashbunny charon: thanks.. They will usually be fast-forward only, but sometimes not... I guess under normal circumstances I wouldn't even need the local branch until I have to do something.. then checkout -b would work15:10
sadleder Slashbunny: see "git config -e", there should be definitions like [branch "master"] remote = origin merge = refs/heads/master15:11
Slashbunny: for all branches you want to track15:11
petermarks left15:11
Arafangion left15:11
xrfang joined15:12
xrfang hello what is the difference between HEAD and ORIG_HEAD?15:12
UncleCJ ShadeHawk: Ah... wonder if that is relevant for me, I don't rally let tracking branches deviate from each other and in this case wanted to find the merge-base to do a cleanup interactive rebase against it15:12
xrfang: Just the question I was abotu to ask!15:12
xrfang :)15:13
charon Slashbunny: note that non-ff merges/pulls always risk a conflict and may be rather hard to automate. though in your case, you can probably merge them all in turn and stop if a conflict happens; then simply fix the conflict, commit the merge and re-run the script, as it'll just do nothing on the already-merged branches15:13
priidu_ joined15:13
Slashbunny sadleder: yeah.. let's say I have master, dev, stuff, remotes/origin/master, remotes/origin/dev, remotes/origin/stuff. And I have master checked out. If I do "git pull", it will do a fetch from origin and update all the remotes/... branches, and then merge master with origin/master. But it won't touch local branches "dev" and "stuff", unless I check them out and do git pull or git merge origin/x15:13
xrfang I am confused while doing some wine test. I did git checkout wine-1.1.1, after I am done with it, I do: git checkout HEAD, it still stay at 1.1.1, and then I did git checkout ORIG_HEAD, it goes to 1.1.17, but the head should be 1.1.22!15:14
jony|away left15:15
Slashbunny charon: Yeah, that's what I was planning on doing, I was wondering if there was a magical way- It makes sense though, you don't want to "pull all" the way "push all" works (push.default matching) because it's going to create a bunch of merge commits which may or may not blow up in the process15:15
balint joined15:15
charon xrfang: you're mostly confused about HEAD. HEAD is always the commit (actually it knows the branch) currently checked out, so checking out HEAD is a no-op. ORIG_HEAD is mostly a relic that is superseded by the reflog15:16
SamB charon: dunno about that "checking out HEAD is always a no-op"15:16
charon Slashbunny: pull is simply not the opposite of push, so the opposite of "push all" is actually "fetch"15:16
xrfang charon: what is the reflog and relic etc? what I wanted to do is to checkout the latest revision in the current branch, that's all. what should I do?15:17
jony joined15:17
charon SamB: a plain 'git checkout HEAD' should be15:17
section31work joined15:17
charon of course it's slightly different if you give it path arguments15:17
SamB I keep finding myself with a repository who's HEAD is rather out of sync with the index15:17
section31work How can i remove a file from the entire repository15:17
xrfang charon: so HEAD means "current working copy", NOT the last commit in the current branch??15:17
charon xrfang: by saying 'git checkout wine-1.1.1' (i.e., a tag), you switched to _no_ branch (a detached HEAD). you no longer have a current branch. tell git to go back to some with, say, 'git checkout master'15:18
SamB xrfang: it means whatever revision you're supposed to have checked out15:18
charon SamB: it will just compare HEAD and index, figure they're different, and re-merge the changes between (the previous) HEAD and index onto (the new, but same) HEAD, thereby doing nothing but a status display.15:18
xrfang charon: I have heard about this, but I don't really understand... they say you should use git checkout -b mybranch wine-1.1.1 etc.15:19
to create a "local branch"15:19
SamB where by "supposed to have", I mean you can easily confuse git by using git update-ref on the branch you've got checked out ...15:19
xrfang but, what if I want to remain in master, just get back in time?15:19
bcardarella joined15:19
charon (please don't tell newbies about update-ref....)15:19
SamB charon: sorry!15:19
charon :)15:19
Slashbunny charon: good point. Thanks for the help.15:20
SamB I actually was hoping you'd tell me about a safer way to do that, that wouldn't confuse git so much15:20
xrfang I really hope there are some good visualization tool (gitk is not enough)... I don't care about how git does its work under the hood, but I would like a big picture of "branches" etc.15:20
Modius joined15:21
charon SamB: check out said ref and use merge or reset (--hard usually, but that's also dangerous), depending on what you want to do15:21
xrfang: read man gittutorial and friends, and/or google for "git for computer scientists"15:21
xrfang ok, gurus... how about my questions? 1) check out a history version, and remain in master; 2) go back to the LATEST commit of the current branch...15:21
Gitbot xrfang: the gittutorial manpage can be found at http://git.or.cz/man/gittutorial15:21
ShadeHawk UncleCJ: but git-rebase finds merge-base by itself...15:21
eno__ joined15:21
xrfang ok, thanks15:22
SamB xrfang: what, you want to change master to point at the ancient revision ?15:22
charon xrfang: your point (1) is already a contradiction. please read the tutorial, it should become clear15:22
xrfang SamB: my scenario is, I want to do a bisect but I forgot which version the bug appears15:22
SamB xrfang: you don't need to stay in "master" to do that15:23
xrfang say, wine is at 1.1.22 now, I want to rewind to 1.1.1 to test whether the bug appears or not, then start a bisect15:23
jony left15:23
xrfang so I need to checkout that version15:23
SamB sure!15:23
there's no harm in having a non-branch checked out, really15:23
xrfang SamB: I don't need to stay in master, yes, but I don't see a need to create a branch for this! do I have to ?15:23
SamB it's just that certain things are irrelevant and therefore don't happen15:23
xrfang: not really15:24
not if you're just going to test the workingness of the commit pointed at by the tag15:24
ShadeHawk xrfang: why not give 1.1.1 as appropriate bad or good revision, or starting point in bisect instead? man git-bisect15:24
Gitbot xrfang: the git-bisect manpage can be found at http://git.or.cz/man/git-bisect15:24
jony joined15:24
SamB ShadeHawk: he wants to make sure it actually is good, first15:24
xrfang ShadeHawk: I must find out a 100% good revision to start bisect15:24
priidu left15:24
xrfang yes15:25
SamB anyway, there's no need to have a branch if all you're going to do is look15:25
a branch is only needed if you're going to start making commits15:25
xrfang ok. this is good. so now, someone said above that after a "branch-less" checkout, I need to type "git checkout master" to return to the latest commit of master, right?15:26
SamB (and even then, it's not absolutely needed unless you want to switch to some other commit ...)15:26
xrfang: yeah15:26
and get that to be the branch that moves when you commit, and so forth15:27
xrfang ok, so HEAD is the pointer of current working copy, it really means nothing, (i.e. it is variable, not constant) right?15:27
SamB (if you have checked out from a tag or SHA1, it won't move any branch, of course)15:27
sakyamuni joined15:27
ciskje joined15:28
SamB xrfang: well, it means something15:28
xrfang I am confused about HEAD, ORIG_HEAD and origin/master etc.15:28
SamB it can point at either a commit or another ref15:28
xrfang maybe they are not related at all, but...15:28
SamB if it points at a ref, that ref gets updated when you commit15:28
hpoydar left15:28
xrfang SamB: ok, I will ignore that for not, "ref" confused me even more ;)15:29
last question for now:15:29
SamB xrfang: sure!15:29
ruz_mac joined15:29
xrfang I did git branch to see the status15:29
SamB you don't have to understand it all right now15:29
xrfang the * is on (no branch)15:29
what on earth is no branch?15:29
why ?15:29
SamB it just means you aren't on a branch at the moment15:29
hpoydar joined15:29
SamB if you look in .git/HEAD, it presumably contains an SHA115:30
xrfang so why? I checked out a history version on master, then I lost my track?15:30
ShadeHawk (no branch) means that HEAD points directly to commit (so called 'detached HEAD'), and not to branch which in turn point to commit15:30
RedShift left15:30
ShadeHawk if you do "git checkout <tag>" or "git checkout <remote tracking branch>" you would land on detached HEAD15:30
SamB xrfang: the past commits along a branch aren't really associated with the branch per-se anymore in git's way of thinking15:30
ShadeHawk git-rebase and I think also git-bisect make use of detached HEAD (git-bisect used to use 'bisect' branch)15:31
dwave joined15:31
SamB they're just parents of the branch tip15:31
ruz_mac hi, is there way to get next commit after X so I can walk towards to HEAD one commit at a time?15:31
xrfang SamB: you mean, if I visualize the git tree, there is actually no concept of a tree15:31
e.g. in wine. 1.1.22 is master, but 1.2.1 or 1.1.1 is no longer "master"?15:31
SamB xrfang: I mean, that it doesn't remember what branch something was first on, except in the reflog15:31
which is a local thing15:32
I doubt 1.1.22 is master15:32
well, could be15:32
mytruehero joined15:32
SamB I guess if it's like Linus' kernel tree ...15:32
anyway, yeah, historical commits don't remember what branch they were made on15:33
Modius__ left15:33
xrfang ok, consider a chain.... can't I say that a revision is like a "node" on that chain? there is no idea of "parent" as in other VCS?15:33
SamB sure there is an idea of parent15:33
xrfang but you said "anyway, yeah, historical commits don't remember what branch they were made on"15:33
charon points at "git for computer scientists" again15:33
fridim_ joined15:33
secleinteer joined15:33
gitte left15:33
xrfang ok, charon, I think I'd better do more reading ;)15:33
mytruehero I have a commit that I merged into my master branch and pushed. I decided that I don't want to deploy that commit yet, however, so I cherry-picked it into a separate branch. How can I remove that commit from master? Or do a commit that essentially un-does the commit I want to remove, while allowing me to merge it back in later from the branch it now resides in?15:34
xrfang thanks all15:34
bye15:34
SamB but the branch name just refers to one node at a time -- hopefully, public branches only move from one commit to (a child of )*that commit15:34
(that parenthesized bit with the asterisk is in regex notation)15:34
wereHamster xrfang: git revert $commitsha15:34
xrfang ?15:35
Dvyjones joined15:35
secleinteer hi, i used git-svn to download an svn repository. now i'd like to commit my changes to a _different_ svn repository. i used --stdlayout when i initially downloaded the repository. when i committed to the new repository, it didn't translate back to stdlayout (i.e., "branch", "trunk", "tags" directories in svn). does anybody know why this is?15:35
Dvyjones How do I pull changes from another repo?15:35
hyperair Dvyjones: git pull git://otherrepo branch15:35
wereHamster xrfang: git-revert creates a new commit that reverts the changes of another commit15:35
Dvyjones hyperair: branch is the branch I want to pull it into?15:36
hyperair Dvyjones: no, the branch you wanna pull from.15:36
Dvyjones hyperair: Oh, ok.15:36
hyperair Dvyjones: you're expected to be on the branch you want to pull to15:37
xrfang wereHamster: yes I got some idea, but I am a bit confused about the status of working copy and the repo etc. quite hard to explain now... I think I need just to read the manual... anyway, this seems is not my current question? ;)15:37
Dvyjones hyperair: Doesn't seem to work...15:37
hyperair: I want to pull this: http://github.com/danlucraft/redcar into this: http://github.com/dvyjones/redcar15:37
wereHamster xrfang: git-scm.com <- there's plenty of documentation15:38
balint left15:38
ph^ joined15:38
netoman joined15:38
ShadeHawk Dvyjones: First, use git URL, and not GitHub URL, as an argument to git-pull / git-fetch / git remote add15:38
hyperair Dvyjones: git clone git://blabla/dvyjones/blabla.git; git remote add danlucraft git://blabla/danlucraft/blabla.git; git pull danlucraft15:38
er i forgot to cd blabla15:39
ShadeHawk dvorak1: git pull git://github.com/danlucraft/redcar.git15:39
Dvyjones: git pull git://github.com/danlucraft/redcar.git15:39
Dvyjones ShadeHawk: I am :P15:39
It says "already up-to-date"15:39
*Everything15:39
xrfang wereHamster: thanks15:39
ShadeHawk so that means that there aren't any new commits to be fetched... nothing to be done15:39
aspotashev_ joined15:40
Dvyjones Well, there's a lot of commits missing...15:40
Wait, nevermind...15:40
D'oh15:40
jacobat joined15:40
aspotashev_ left15:41
mitkok left15:41
aspotashev_ joined15:41
com4_ joined15:42
jony left15:42
aspotashev_ left15:42
jony joined15:44
ciskje left15:44
aspotashev_ joined15:44
xrfang left15:44
mytruehero left15:45
miriamg joined15:45
aspotashev_ left15:45
aspotashev_ joined15:45
jony left15:46
ciskje joined15:46
ShadeHawk Some of git web interfaces (GitHub, Gitorious) present a kind of "tree blame" in a 'tree' view (probably following what ViewVC and other web interfaces for per-file SCMs), with "date the file changed" beside each file (and sometimes "commit that changed the file")15:47
Is such information useful? Would it be worth adding it (as an option) to gitweb, for example?15:47
sfwc left15:49
giallu left15:50
sfwc joined15:50
boto_ left15:50
hobodave joined15:51
aspotashev left15:54
parasti joined15:54
RayMorgan joined15:55
gilimanjaro left15:56
juanjoc joined15:56
Yuuhi joined15:56
Nazcafan left15:57
schacon joined15:58
sfwc left15:59
abstrusething joined15:59
akitada joined15:59
sfwc joined15:59
freelook1 I'm trying to track a remote git repository but make my own custom changes to it. The problem is that I have a desktop and a laptop, and so I'd like to keep changes synced in between them. Any ideas on a good way to do this? I've got a local server as well. Perhaps having a repository on the server is a good way of doing it?15:59
joshthecoder_afkjoshthecoder16:00
carrus85 joined16:01
abstrusething left16:01
Aides just push and pull your changes from/to desktop to/from laptop16:02
Bass10 joined16:03
priidu_ left16:03
Aides best way of course would be to setup remotes on both sides and pull16:03
because pushing to non-bare repository could be not nice16:04
gberdyshev_ left16:04
georgyberdyshev joined16:04
thiago also recommends pulling only16:04
freelook1 That could work except my desktop is not always on, and my laptop is often away. It would be nice to have a central point for myself to pus from/pull to16:04
push*16:04
thiago then do it16:05
SamB freelook1: you could set up something on github or gitorious or repo.or.cz (not sure repo.or.cz can do that today, though -- it was partly-down for maintenance yesterday)16:05
Aides then yes, local server is nice16:05
just make it bare, so you can push safely16:05
WinterWeaver joined16:05
freelook1 ok, I'll try that. Thanks a lot16:05
priidu_ joined16:06
agile left16:06
freelook1 Aides: in the case of a local server then, is gitosis the recommended way?16:06
psoo left16:07
WinterWeaver left16:07
Aides freelook1, if you'll be using it yourself, just use plain ssh16:07
drop it somewhere, say /home/user/repo16:07
and then access as ssh://server/home/user/repo16:08
freelook1 great. thanks Aides16:08
Aides gitosis is nice for several users, because git loves to screw file permissions16:08
freelook1 ahh16:08
bschindler left16:10
georgyberdyshev_ joined16:10
JasonWoof joined16:11
DavidKlein joined16:12
webcoder_ joined16:13
qhoxie left16:13
akitada When I work with code using git, I always try to make a good commit, which is a fix or chagne of some specific problem/enhancement. Git is great for this. I usually create a branch for each fix and try to make up a good commit. but there's one problem. How I can work with multiple branches.16:13
As I said, each branch is for a specific problem. Sometimes a fixing a bug takes a lots of time and during working on that, sometimes I have to work with another problem.16:15
wshimmy akitada: that's the whole point of working with branches in git ;)16:16
akitada: man git branch and man git checkout should help you16:17
akitada In that case, I would: git stash; git checkout -b another_bug; hack hack; git add; git commit; git checkout -b branch-i-came-from; git pop --index; hack again...16:17
WinterWeaver joined16:17
wshimmy akitada: sounds about right, except you don't want the -b in checking out branch-i-came-from16:18
Slashbunny I noticed git can create physical paths for branches, which is pretty cool- Like git branch majorchange/subchange1, git branch majorchange/subchange2 . Let's say for example one of those changes is going to require more work, or more experimental tests done on it- Following this heirarchy, I would create another sub folder... Now I understand why git branch majorchange/subchange1/subsubchangeA doesn't16:19
work on a technical level (it's trying to create a directory where a file is), but how do you think I should handle this? make a subchange1/master branch and a subchange1/subsubchangeA branch? Has there ever been talk of having branches represented as directories to begin with and having a directory/.hash file... I assume this would be more clunky and slower... just curious16:19
ShadeHawk freelook1: Take a look at GitTips page on git wiki: http://git.or.cz/gitwiki/16:19
akitada and here's my question. Am I using git right? I think I could do it better and like to have some advice from git experts.16:19
wshimmy: oops, that's typo...16:19
wshimmy akitada: and you can use git checkout -b another_bug master, for example, if you don't want the new branch to have the commits on your current branch, which is probably the case16:20
altrux left16:20
webcoder left16:20
eletuchy joined16:21
akitada wshimmy: oh, that's nice. is that cause the branch is based on master? cool.16:21
johan-s joined16:21
wshimmy akitada: git help branch16:22
WinterWeaver left16:22
akitada wshimmy: ah, <start-point>. cool...16:22
mgerwitz joined16:24
lorandi left16:24
wshimmy Slashbunny: do you really need that much hierarchy?16:25
akitada git checkout -b yet-another; hack hack; git add; git commit; git checkout master; git merge yet-another;16:25
lorandi joined16:25
akitada this is my workflow.16:25
wshimmy Slashbunny: if so, I would probably just put a master under my branch dirs, just from a taxonomic point of view16:27
SamB I wish git stash could handle in-progress merges :-(16:28
aspotashev_ left16:30
Slashbunny wshimmy: yeah, that seems reasonable16:30
aspotashev joined16:31
georgyberdyshev left16:31
schacon_ joined16:31
miriamg anyone know how to specify a specific revision to pull a submodule at? i see "git submodule add -b <branch>", but nothing to specify a revision...16:32
angerman left16:32
ShadeHawk SamB: yes, unfortunately git-stash cannot handle in-progress merges... but that was brought into attention; it is not technically impossible (each index stage could be separate parent, for example)16:32
georgyberdyshev_ left16:32
georgyberdyshev_ joined16:32
Alinermedia joined16:33
khmarbaise left16:33
SamB ShadeHawk: I know that!16:33
it's certainly something it could do16:33
it'd just need more work16:33
wshimmy rumour has it they accept patches ;)16:33
SamB I dunno if I can do the work or not, though16:34
priidu_ left16:34
akitada learning git is fun. cool features are still there even in "git-add". learning something new everyday :)16:34
leanucci left16:34
SamB sometimes wishes git didn't have so many "features"16:35
leanucci joined16:35
ShadeHawk SamB: as in... if you wait, perhaps it would be soon in git (I mean stashing away merges...)16:35
SamB (where feature means something like "projecting corners upon which to injure oneself" ...)16:35
schacon left16:37
jayallen joined16:38
mgerwitz left16:38
qhoxie joined16:38
davidfetter left16:38
davidfetter joined16:39
azol joined16:40
dwmw2 left16:40
georgyberdyshev_ left16:41
marc_kdab left16:41
Galaxor joined16:42
Galaxor Hey. I've got a git repo that I can't push to anymore. It says: error: unable to create temporary sha1 filename ./objects/19: File exists16:42
What can I do about that?16:42
WinterWeaver joined16:43
ciskje left16:43
shruggar left16:43
Galaxor the repo I'm trying to push from is on a machine with git 1.6.0.1, while the intended recipient is running 1.6.0.16:43
kraymer joined16:45
scientes joined16:46
ntoll left16:47
akitada left16:48
ShadeHawk Galaxor: it looks like something f**ked up on remote side. Is objects/19 a file, or a directory?16:49
javatexan joined16:49
FauxFaux joined16:49
random8r joined16:49
lois[pac] joined16:49
Galaxor A directory.16:49
It's got one file in it.16:50
ShadeHawk hmmm...16:50
doener hm, looks like the usual "Permission denied" being half-fixed16:50
abstrusething joined16:50
Modius_ joined16:50
fujin left16:50
ShadeHawk well, strange error message it is...16:50
naeu joined16:51
doener the "Permission denied" message was also wrong. The fallback code eats the original error message16:51
now if I could recall where that code is...16:51
hpoydar left16:51
Galaxor Aha. Permission denied indeed. I found that some of the objects directories were owned by "root:root" instead of "git:git".16:51
I changed it and it now accepts pushes.16:52
Permission denied would've been a much more helpful error.16:52
hpoydar joined16:52
drmclem joined16:52
doener Galaxor: yeah, your version probably still has the bug that made it always try to create the directory when creating the file fails16:53
Galaxor: and that kills the original error message16:53
dreiss joined16:54
Galaxor Aha. Cool, I'll try to upgrade when I've got some time. Thanks.16:54
doener Galaxor: got fixed in 1.6.0.516:55
Galaxor: (server side is what matters here)16:55
solydzajs joined16:55
thiago_home joined16:55
Galaxor doener: Okay, thanks.16:56
Modius__ joined16:56
voker57_ joined16:57
tono left16:57
rshann_ joined16:58
solar_ant joined17:00
Weaselweb joined17:02
random8r left17:05
schacon_ left17:05
schacon joined17:06
factotvm joined17:07
Modius left17:07
Yuuhi left17:08
dwmw2 joined17:09
cloudhead joined17:09
miriamg ah, I found the answer here (if anyone else was wondering): http://woss.name/2008/04/09/using-git-submodules-to-track-vendorrails/. clearly I still don't really understand submodules17:10
__iron joined17:10
voker57 left17:10
tvw joined17:11
drmclem left17:11
ShadeHawk Does anybody know why Bazaar-NG wasn't considered as viable choice for Linux kernel at the time git was being created?17:11
(July 2005)17:11
j416 left17:11
FauxFaux SLOW17:12
Dashkal joined17:12
Modius_ left17:13
Modius__ left17:14
krawek joined17:15
secleinteer hi, i used git-svn to download an svn repository. now i'd like to commit my changes to a _different_ svn repository. i used --stdlayout when i initially downloaded the repository. when i committed to the new repository, it didn't translate back to stdlayout (i.e., "branch", "trunk", "tags" directories in svn). does anybody know why this is?17:15
memiux left17:16
mtveemtvee|away17:16
ceez joined17:17
cxvii joined17:17
Galaxor left17:17
Fullmoon joined17:19
jmesnil left17:20
laj joined17:21
agile joined17:23
knweiss joined17:24
sgrimm joined17:25
moonflux joined17:26
wereHamster secleinteer: git-svn doesn't automatically commit all branches to the svn repo, only the currently active one17:26
memiux joined17:28
jrmuizel left17:33
towski joined17:33
Hendu left17:34
jrmuizel joined17:34
ShadeHawk FauxFaux: You mean that Bazaar-NG was too slow for Linux kernel?17:35
Errr... Bazaar: Initial release 14 December 200717:35
didn't exist then17:35
(and Arch has too complicated UI)17:35
doener ShadeHawk: that was 1.017:36
ShadeHawk: http://doc.bazaar-vcs.org/bzr.1.15/en/release-notes/NEWS.html#bzr-0-0-0-69-2005-03-22 -- first public release 2005-03-2217:36
memiux left17:37
memiux joined17:37
ShadeHawk ah... so it did exist then...17:38
eletuchy_ joined17:38
adamtanner joined17:39
kuadrosx joined17:39
legnaleurc left17:40
dreiss left17:40
JEEBcz joined17:41
juanjoc left17:42
sadleder left17:42
juanjoc joined17:42
salty-horse joined17:44
sunoano left17:44
djgera joined17:45
secleinteer wereHamster: is there a way to change that behavior?17:45
adamtanner left17:46
sakyamuni left17:46
sakyamuni joined17:46
bleything|awaybleything17:48
sunoano joined17:49
almostautomated Hiya all; could someone configrm that when viewing diff out that the highlighted '^M' I'm seeing is a marker designating whitespace at EOL ?17:51
FylGood joined17:51
doener almostautomated: it's a CR17:51
wereHamster secleinteer: I don't think so. Do you want to mirror the svn repo through git to another svn repo?17:52
rshann_ left17:52
almostautomated doener: Thanks; I knew I had mixed line endings ( expected ) yet wasn't expecting that. Thank you.17:52
robin joined17:53
jwheare joined17:54
eletuchy left17:55
bcardarella left17:55
jwheare i just made 5 commits that i want to completely remove, not just git revert17:55
Aides have you pushed them?17:55
jwheare no17:55
towski left17:55
memiux left17:55
Aides then git reset --hard HEAD^^^^^17:55
cxvii left17:56
jwheare i guess i can replace HEAD^^^^^ with the sha that i want to reset to17:56
cheers17:57
psoo joined17:58
psoo left17:58
FylGood left17:58
jspiros joined17:58
bleythingbleything|away17:59
bleything|awaybleything18:00
knweiss Or shorter: git reset --hard HEAD~518:00
ruz_mac left18:02
lanwin joined18:02
agile left18:02
sakyamuni I want to undo a checkin. I haven't done a push. I did git reset HEAD^1.. what's the next command that I should do?18:02
psoo joined18:03
lanwin hi a question. Is there an command to add all deleted files to the next commit without calling git rm for each separatly?18:04
frsk sakyamuni: well, git reset head^ removes the commit.. what more do you want to do? =)18:04
kobani joined18:04
jaeckel sakyamuni: why not only amending?18:04
Aides lanwin, git add -u18:04
sakyamuni jaeckel: never done that, how is that accomplished?18:04
khmarbaise joined18:04
sakyamuni frsk: i thought --hard removes it whilst the way I did it, soft, it's still "sorta" still there.18:05
frsk sakyamuni: --hard reverts changes in the file as well18:05
jaeckel in git gui changing radio button from 'new commit' to 'amend last commit'18:05
sakyamuni I dod a git diff and I see the changes, should I just do git reset --hard now?18:05
jaeckel :)18:05
bradly joined18:05
jaeckel don't use commandline for committing18:05
sfwc left18:05
frsk sakyamuni: If you'd want to throw the changes away, yes18:06
SRabbelier joined18:06
sakyamuni frsk: i want to throw 'em away so git reset --hard worked18:06
frsk sakyamuni: If you're not 100% sure, you could always make a backup of the files your first time, though =)18:06
okey, great =)18:06
jaeckel but my git cheat sheet says commit -a --amend18:06
Aides cheater!18:07
jaeckel =D18:07
jwheare left18:07
jaeckel well18:07
finishing time18:07
lymeca joined18:07
jaeckel bye18:07
jaeckel left18:08
naeu left18:08
sfwc joined18:10
factotvm left18:13
agile joined18:13
lanwin ah thanks Aides18:14
mozinator joined18:16
abstrusething left18:16
abstrusething joined18:20
boto joined18:20
altrux joined18:22
bschindler|lapto joined18:25
solar_ant left18:26
boto left18:27
boto joined18:27
solar_ant joined18:28
Dashkal left18:29
Dashkal joined18:29
bschindler|lapto left18:33
bobesponja joined18:35
robin left18:36
dreiss joined18:37
jayallen left18:38
secleinteer wereHamster: yes, that's right18:39
i use git locally to work on a public project18:40
we are temporarily managing a branch locally due to some licensing issues, using svn as well18:40
no one else will use git :(18:40
aqmaiu left18:44
HG`` left18:48
icwiener joined18:48
jbwiv is it possible to edit timestamps in a git repository? Say I wanted to rewrite history and have every commit occur between 4 pm and 6 pm? Strange question, I know18:51
Chani hmm. there's no git cp? is this because git will magically know I've copied?18:51
Grum Chani: yes18:52
Chani cool.18:52
wshimmy left18:52
SamB jbwiv: it's possible, but you're going to have to come up with a better use-case if you want me to say how...18:52
memiux joined18:52
bgerber left18:53
agile left18:55
cousine_ joined18:55
cousine_cousine18:56
hyperair left18:56
psoo left18:57
memiux left18:58
bgerber joined18:58
khmarbaise_ joined18:59
ShadeHawk Chani: git would turn of copy detection if you enable / request it; git cp is just cp + git add.18:59
cousine left18:59
cousine joined19:00
schacon left19:00
ShadeHawk jbwiv: man git-rewrite-hist + GIT_AUTHOR_DATE and GIT_COMMIT_DATE environmental variables19:00
Grum ShadeHawk: rm+add19:00
ShadeHawk Grum: 'git cp' if it existed would be equivalent to 'cp' + 'git add'19:01
Grum errr yes sorry not mv ><19:01
ShadeHawk On the other hand 'git rm' and 'git mv' has built in extra safeties19:01
psoo joined19:01
flazz left19:02
flazz joined19:02
abstrusething left19:03
hyperair joined19:05
solydzajs left19:06
mge joined19:08
khmarbaise left19:08
jetru joined19:09
grahal joined19:09
mge so I accidentally did a git checkout github/master and reverted my commited changes I had loally to what was on the github server. Any way to recover mylocally commited changes?19:09
blaenk joined19:10
Modius joined19:11
maxb git checkout whatever-branch-you-were-on-before ?19:12
Unless you were working on a disconnected head?19:13
FauxFaux git fsck --unreachable, rite?19:13
mge I am a complete newb.. this is my first attempt at merging changes remotely with my local changes19:13
git checkout master maybe?19:13
hiffy mge: yup19:14
ShadeHawk mge: 'git checkout master' (assuming that you were on branch 'master' before 'git checkout github/master')19:14
hiffy if it got comitted you should be ok19:14
ShadeHawk mge: git would refuse to checkout if it would mean losing your local changes19:14
hiffy so in this case this means that github/master is not mge's origin/master?19:14
oh right19:15
it prolly makes a distinction b/w origin master and the local master19:15
mge it looks like git checkout master got me back to where I was19:15
omakase joined19:15
solydzajs joined19:16
wshimmy joined19:16
icwiener_ joined19:17
jayallen joined19:18
icwiener left19:18
drdave joined19:20
jetienne joined19:20
jetienne q. is there a way to measure the size of a change between version ?19:20
walken joined19:20
walken hi.... I've been wondering, what is .git/branches for ? all my branches show up in .git/refs/heads instead.19:21
bleythingbleything|away19:21
drdave Hi, I'm trying to write a script that exports a revision of a given file - say the third from the HEAD revision. I'm trying things like:19:21
thiago_home jetienne: and how do you measure change?19:21
walken: legacy. It's not used anymore.19:22
drdave git show Court~3:"opn_Plugins/opn_Text/rev/object/View|Layouts|Horizontal|Three/group_1207"19:22
or git show HEAD~3:"opn_Plugins/opn_Text/rev/object/View|Layouts|Horizontal|Three/group_1207"19:22
thiago_home drdave: I don't think wildcards work there19:22
bleything|awaybleything19:22
thiago_home drdave: just tested: they don't. You should pass the full path.19:23
drdave ok - trying...19:23
webcoder_ left19:23
bleythingbleything|away19:24
jetienne left19:24
Chani how do I set what files git ignores in ~/.gitconfig? the gitignore man page explained how to do it in .gitignore but that's different...19:25
rudi_s left19:25
lorandi left19:25
drdave fatal: ambiguous argument 'Court~3:/[[full_path]]': unknown revision or path not in the working tree.19:27
Use '--' to separate paths from revisions19:27
The [[full_path]] exists and is inside the git repository19:27
salty-horse is there a way to set svn props with git-svn?19:28
thiago_home salty-horse: not that I know of19:28
drdave: can you do git shouw Court~3 ?19:28
Chani .gitconfig could really do with some more documentation...19:29
thiago_home Chani: man git-config19:29
Gitbot Chani: the git-config manpage can be found at http://git.or.cz/man/git-config19:29
bleything|awaybleything|away|a19:30
Chani thiago_home: yeah, I looked there too19:30
drdave Yes - though as it is not referencing a given file - it does not return the text of the revision, but a load of stuff :)19:30
dedmajor joined19:30
Chani unless gitignore meant that I should set core.excludesfile19:30
andthen have *another* file in hte format of .gitignore19:30
drdave PS - I'm on OSX19:31
Alinermedia left19:32
Alinermedia joined19:32
thiago_home Chani: git config core.excludessfile ~/path/to/global-gitignore19:32
drdave I get the result i want if i use a form like:19:32
git show f1a5079bbbb772641a512692d007e4d64721bb56:"opn_Plugins/opn_Text/rev/object/libOPN_GIT/card_1002"19:32
Chani ooh, it worked :)19:33
thiago_home Chani: with one s less19:33
khmarbaise_ left19:33
Chani no more .svn or .swp files :)19:33
thiago_home drdave: ok19:33
drdave: but I can vouch that git show REF~3:path/to/file works19:34
drdave OK - so you think could be an OSX thing?19:34
thiago_home drdave: try placing the entire argument in quotes19:35
drdave OK19:35
thiago_home or, just test: echo Court~3:opn_Plugins/opn_Text/rev/object/libOPN_GIT/card_100219:35
what do you see?19:35
giallu joined19:36
cousine left19:36
bleything|away|a left19:37
bleything joined19:37
rshann_ joined19:38
lanwin left19:40
drdave Been testing... will try ur suggeestion in a sec19:41
Everything failed - single quotes, double, full and relative paths...19:41
this sort of works:19:42
javatexan left19:42
drdave git show "HEAD~3:opn_Plugins/opn_Text/rev/object/libOPN_GIT/card_1002"19:42
BUT - it returns revision 0 and not 3 back from HEAD19:42
salty-horse left19:42
drdave Either single or dounle quotes - (I changed to another file without "|" in the filename)19:42
memiux joined19:42
lorandi joined19:43
lorandi left19:43
lorandi joined19:43
khmarbaise joined19:44
drdave not sure what you want me to "echo"19:44
ls -la opn_Plugins/opn_Text/rev/object/libOPN_GIT/card_100219:44
javatexan joined19:44
drdave returns as expected - text file is there and exists19:45
I'm at the git root19:45
repository root19:45
j-b left19:46
almostautomated hey guys; quick question to satisfy a curiosity; if someone creates a commit with a bunch of diff stuff in it; and we only want parts of that single commit is it fairly simple or is it easier to have them redo it and re-submit?19:48
cytrinox joined19:50
eht joined19:50
rlorandi joined19:52
tlrobinson joined19:52
tlrobinson why does git sometimes complain that a file isn't uptodate and can't be merged when pulling the first time, but if i immediately pull again it works?19:53
(and git status doesn't show the file was modified)19:53
thiago_home "not up to date" means you have changes that haven't been committed19:54
Git won't touch modified files19:54
tlrobinson yeah, but "git status" shows nothing has changed. and if i immediately try pulling again then it works the second time19:55
com4_ left19:55
priidu joined19:55
tlrobinson know what i mean? does that happen to anyone else?19:55
memiux_ joined19:55
thiago_home which version are you using?19:56
drdave Ok - getting somewhere - relative files seem to work in uncomplicated cases (without quoting) need to do some more testing19:56
tlrobinson 1.619:56
thiago_home tlrobinson: no, I haven't seen this problem before19:56
drdave git version 1.6.2.419:56
memiux_ left19:56
bx2 joined19:56
memiux_ joined19:56
tlrobinson well, its not a big deal, it's just curious19:59
schacon joined20:00
plasticine joined20:00
bradly left20:01
drdave Ok seems to work with relative paths and second part quoted - rest of it must have been my mistake. Thanks.20:02
lorandi left20:03
rshann_ left20:04
almostautomated what type of search terms can lead me towards an answer to:20:04
hey guys; quick question to satisfy a curiosity; if someone creates a commit with a bunch of diff stuff in it; and we only want parts of that single commit is it fairly simple or is it easier to have them redo it and re-submit?20:04
ciskje joined20:05
HG` joined20:05
bcardarella joined20:05
drdave Anyone recommend a good cross-platform way to view git diff / changes in text files cross-platform? I'm using "FileMerge" on OSX (part of developer tools) - looking to distribute script of Linux and Windows...20:05
SamB almostautomated: have him redo it!20:05
thiago_home drdave: "less" is very nice to read diffs20:06
cytrinox_ left20:06
memiux left20:06
drdave :)20:06
SamB yeah, just using PAGER is best20:07
almostautomated SamB: and is there a man page I can refer him to on how to seperate out the different parts of the code changed in one given file? ( perhaps git add -i )20:07
SamB almostautomated: sometimes I do that with git-gui20:07
EvanCarroll I want vimdiff to work with flat calculated diffs.20:08
=(20:08
unreal_ joined20:08
memiux joined20:08
almostautomated SamB: K; I'll see if I can lead him in that direction. Yet as you know; sometimes people say you want it here it is; in that case is there an effective way to parse out _parts_ of the commit?20:09
memiux_ left20:10
SamB almostautomated: copy and paste from the diff ?20:10
but never encourage contributors to make things difficult for you20:11
almostautomated LOL; I was afraid of something like that. Definitely not, I'll absolutely ask that it be redone20:11
thanks for the input20:11
TheUni joined20:12
TheUni i'm trying to use git svn to clone a repo that's obviously corrupt somehow. every time it hits a certain file, git barfs. is it possible to ignore a file when cloning?20:13
cytrinox_ joined20:13
thiago_home TheUni: ignore? no20:13
but you can start the clone after it20:14
SamB TheUni: there's not a chance that it's a bug in git-svn ?20:14
thiago_home drop everything before that20:14
gigi joined20:14
SamB I'd post to the git mailing list with instructions to reproduce20:14
TheUni thiago_home: don't think so.20:14
same file every time20:15
and if i skip it, the next time it's referenced it does the same thing20:15
tvw left20:15
SamB TheUni: what's the filename ?20:15
TheUni mplayer.dll20:15
SamB okay ...20:15
and I guess it's probably not over 2GiB20:15
;-)20:15
TheUni heh, no. nothing weird about it20:16
and for the revs that fail, i can grab the file from svn just fine20:16
SamB so you can check out those entire revs just fine ?20:16
schacon_ joined20:16
SamB sounds like a bug in git-svn to me ...20:16
schacon left20:16
SamB so, report it on the list20:17
I assume it's a public SVN repo?20:17
TheUni yea20:17
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=51271020:17
mtvee|awaymtvee20:18
clamothe joined20:19
dedmajor left20:19
gigi left20:20
clamothe Using git-svn, how should i go about merging two branches? They are remote 'svn' branches, and I have local branches for both of them.20:20
just merge my local branches and dcommit, or will that be messy?20:20
dedmajor joined20:22
memiux left20:24
cytrinox1 joined20:24
Toad joined20:25
Toad hey all. if I've done a merge using git merge-tool, but then decided I want to change my mind and merge it a different way, is there a way to mark the file as "needing merge"20:26
getting "file does not need merge" since merge-tool git-added it when I was done20:26
radarek joined20:27
j416 joined20:27
cytrinox left20:28
Radar joined20:29
SRabbelier left20:30
solydzajs left20:31
lightcap joined20:31
clamothe left20:32
gitte joined20:33
tote joined20:34
tote What could be wrong when i get: git: 'http-push' is not a git-command. See 'git --help'.20:34
ToxicFrog What command are you issuing?20:35
tote git push20:35
ive cloned a repo from an http url20:35
JasonWoof almostautomated: git add -i is nice for committing some, but not all changes to the working tree. if you reset the commit you'd like part of, you should be able to use git add -i (then press 5 then *) to have it ask you which diff chunks you'd like added to the index20:36
tote: you can't put over http20:36
s/put/push/20:36
http is read-only20:36
lucsky left20:36
tote JasonWoof: why is there a git-http-push command then?20:37
doener JasonWoof: dav?20:37
JasonWoof tote: there isn't. that's why you got a message that it's not a command20:38
doener tote: self-built git, or from distro packages?20:38
JasonWoof doener: git uses http in a read-only way20:38
tote doener: debian package20:38
JasonWoof afaik20:38
doener JasonWoof: man git-http-push20:38
Gitbot JasonWoof: the git-http-push manpage can be found at http://git.or.cz/man/git-http-push20:38
tote and dav is installed on the http-server20:38
almostautomated JasonWoof: selection by diff hunk - that's on a per file basis or per hunk within the file's diff? Either way; that gets us closer. Thanks.20:39
JasonWoof almostautomated: "git add -i" can do per file or per hunk20:39
almostautomated: option 5 in the menu is per-hunk, which I like a lot20:39
almostautomated: then it asks you which files you'd like to pick and choose hunks from20:39
doener tote: lenny?20:40
galderz left20:40
almostautomated fantastic... I'll play with that tonight! Thanks again JasonWoof20:40
tote doener: squeeze20:40
cytrinox_ left20:40
knweiss left20:41
wshimmy "git add -p file" gets you there too, if you have a tracked file modified that you want to add hunks of20:41
doener tote: hm, does /usr/lib/git-core/git-http-push exist? Does "dpkg -L git-core" show it?20:41
JasonWoof I stand corrected, git can push to DAV. Although the manpage doener sent me to says that it's disabled if your libcurl is older than 7.1620:42
tlrobinson left20:42
gitte JasonWoof: how old is 7.16?20:42
tote doener: yes its there20:42
gejr how can i set the name of the project in gitweb? It's always named ".git"..20:43
DavidKlein left20:43
priidu left20:43
almostautomated wshimmy: I had read that somewhere but didn't see it in the add man page...20:43
rlorandi left20:43
doener tote: hmm... what does "git --exec-path" say?20:44
JasonWoof gitte: no idea20:44
ShadeHawk left20:44
cousine joined20:44
lorandi joined20:44
doener gitte, JasonWoof: 2006-10-3020:44
tote doener: /usr/local/libexec/git-core/20:45
miriamg left20:45
Toad left20:45
gitte JasonWoof: pity you did not even research that, otherwise I would have blasted you less for touting a _completely obsolete_ version of cURL.20:45
doener tote: so you have another git installed, presumably self-built20:45
gitte doener: thanks for doing JasonWoof's job.20:45
tote doener: hmm :/ gotta look into it20:46
doener tote: and that might be lacking the http-push support. I don't recall if fetch and push over http have different requirements20:46
tote: or maybe the version in /usr/local/ got installed after you did the clone20:47
unreal_unreal20:47
tote doener: any tip on have to remove the self-built version?20:47
lorandi left20:47
lorandi joined20:47
JasonWoof I just figured if it was completely irrelevant, it wouldn't be in the manpage.20:48
rshann_ joined20:50
doener tote: http://git.pastebin.com/m340a1a74 -- that and the man pages20:50
tote: IIRC that's all that gets installed20:51
tote doener: ok, thanks :)20:51
gh34 left20:52
Zenopus_ joined20:52
jmatthews joined20:53
HG` left20:54
azumanga joined20:59
Weaselweb left20:59
azumanga In a default git setup, is there anything that stops someone from deleting all the branches from a remote repository they have write access to?20:59
alip is it possible to do a rebase after merging from upstream several times?21:00
DrNick no21:00
azumanga While I'm sure I'm stating the obvious, isn't the fact that branches can be deleted and not recovered a fairly major hole in a version control system?21:01
keystr0k joined21:02
azumanga I'm genuinely interested what the reasoning was behind this, rather than versioning branches the same as files21:03
keystr0k I have a bare repository with all of the latest commits. What's the best way to reset my local working tree to a previous commit... and if I like the changes that I end up making, to it, commit them as a new commit into the bare repo?21:03
gitte keystr0k: clone the bare repo.21:04
sfwc left21:04
gitte keystr0k: make the changes.21:04
keystr0k: commit them.21:04
keystr0k: push them.21:05
FreakGuard joined21:05
keystr0k gitte: and it won't overwrite any of the other commits ? do I checkout that specific commit number? Currently the bare repo and working tree are exactly the same... I was going to reset to the earlier commit, make my changes, etc... but that doesn't seem right... branches?21:06
gitte azumanga: if you like a system disallowing branches, and thereby forcing people to blow away repositories that they resurrect with _just_ the branches they like, just say so.21:06
doener azumanga: unless you have something like gitosis, write access may as well mean that the user can do "rm -rf repo"21:06
Zenopus_Zenopus21:06
doener azumanga: and if you don't trust your devs set receive.denyDeletes21:06
azumanga doener: Really?? I'd assumed, like svn, they couldn't delete history21:07
gitte keystr0k: you can do branches, of course, but if you want to keep the other commits, you will have to merge the branches and then push.21:07
keystr0k gitte: mmkay21:07
azumanga So, I should add some extra version control for my version control?21:08
gitte azumanga: you can use subversion. That would be a solution, no?21:09
hcl2 joined21:09
gitte azumanga: ask on #subversion, I am sure they'll agree.21:09
hcl2 for git merge or pull the --no-commit option doesn't seem to do anything.21:09
doener azumanga: If you're scared of your devs you should probably rather hire new ones... But to protect from pure mistakes, what's the problem with receive.deny{Deletes,NonFastForwards}?21:09
cousine left21:09
azumanga doener: I'm going to have a look at those21:09
walken azumanga: git beginner here. but, I'd assume you can clone the repo so you have a backup.21:10
azumanga But seriously, part of the point of version control, is to avoid people's mistakes and allow old history to be dug back up in the case of accidents21:10
riddochc joined21:10
tbf left21:10
azumanga Perfect devs wouldn't need version control, they'd just edit the code live21:10
gitte azumanga: BS21:10
azumanga: Perfect devs still would need version control21:11
azumanga: obviously you haven't thought things through...21:11
qrush left21:12
doener .oO( hm, live editing and interpreted code... a whole new dimension for race conditions )21:12
gitte azumanga: let me guess: you are a project manager, not a dev.21:12
drdave left21:12
azumanga gitte: No21:12
gitte azumanga: with an MBA as background. Am I right? ;-)21:12
riddochc That assumes that version control is only for the purpose of knowing what's been changed.21:12
azumanga I can list some code I've written if you really want me to21:12
gitte azumanga: then how can you say that?21:12
loincloth left21:12
squentin_ azumanga: you can also use git where each dev has its own public repo, and you pull from them21:13
dmoerner joined21:13
keystr0k left21:13
azumanga Well, I think (although I'm looking at how I'm going to work around it) that allowing branches to be deleted, never to be recovered, puts a serious hole in version control21:14
gitte squentin_: although to prevent "data loss" azumanga is so concerned about, you'd still have to "git fetch" from those pretty often.21:14
azumanga: didn't you say that already?21:14
azumanga: but you haven't offered any rationale for that.21:14
azumanga: in contrast, I can give you at least one _very_ _good_ reason why you should be able to delete branches.21:15
azumanga: trade secrets. You could spill them unintentionally.21:15
azumanga Do I need a rationale? My belief is that people make stupid mistakes, and someone might well at some point accidentally delete a branch which actually they, or someone else, still needed21:15
gitte azumanga: happened to me, I was told that I could commit the stuff, but then asked to delete it later.21:16
azumanga: obviously you do not need a rationale.21:16
azumanga: and obviously I wasted my time on you. Have a fun time.21:16
azumanga The same reason we back up users's home directories, because one day someone is going to accidentally rm -rf in the wrong directory, and *bang*, home directory gone.21:16
gerberb joined21:16
riddochc deleting a branch in git should only result in a loss of data if nothing else refers to the same commit, and you've got reflogs off, and... probably a few other things, too.21:16
doener azumanga: and you exclude your code repositories from the backup exactly why?21:17
Ilari azumanga: If someone else needed it, its likely has remote mirrors (git fetch won't delete those without mirror mode), or better yet, has local working branch based on it.21:17
azumanga: And IIRC, mirror mode is pretty much for bare repos only.21:17
azumanga We certainly don't exclude them, but (although I haven't tried) splicing a deleted branch from the backup back into the git server might prove fun21:17
doener azumanga: put the backed up repo somewhere, push, done21:18
Ilari azumanga: Or just take some clone and push its tracking branch.21:18
rshann_ left21:19
wshimmy azumanga: for it to really be data loss, you need to delete it from the server. then everybody who has a clone of the repo has to delete the branch. and you have to wait for the reflog to expire or for a gc on the server.21:19
azumanga Anyway, it seems the option I would like, which is that branches are not actually deleted, but versioned and recoverable, like svn, doesn't exist in git. I'll investigate the various options you have suggested, in particular recieve.denyDeletes looks very promising21:19
wshimmy azumanga: if somebody does a git push origin :master21:19
azumanga: i would imagine they'd realize right away21:19
azumanga wshimmy: The problem is that maybe you don't realise you wanted that branch for months21:19
wshimmy azumanga: and then its just a git push origin master away from being fixed21:20
cemerick left21:20
wshimmy azumanga: and there isn't any clone anywhere with those commits?21:20
sfwc joined21:21
azumanga wshimmy: Well, we are working in hypotheticals here.. but I would expect there to be, except of course if there was a backup.21:21
This is just a feature of svn which I'm, perhaps unnecessarily, afraid of loosing when moving to git.21:21
Ilari azumanga: If you want on-line "second copy" repo, just periodically fetch the other repo?21:21
wshimmy azumanga: im just saying, if that's the case, i think your workflow has bigger problems than git allowing you to manage your repo yourself21:22
azumanga wshimmy: You really can't imagine someone might do away with a branch, thinking it was uninteresting, then months later wanting to query something about it?21:22
wshimmy gitte: sorry i disappeared earlier. you still interested in seeing diff engine code?21:22
doener azumanga: why does a branch that nobody wants end up in a "central" repo anyway?21:22
Fullmoon left21:23
walken azumanga, I suspect the idea is that devs will create and delete branches, nilly-willy, *on their own cloned repos*.21:23
wshimmy azumanga: i cant imagine someone doing away with a branch *on the central server* that hasn't been merged or tracked elsewhere21:23
walken so you want branch creation to be easy because people will do it a lot - but they shouldn't have to do it much at all on the central repo.21:23
azumanga doener: Well, I'm imagining that at one point lots of people were interested in it, perhaps preparing for a new release or feature or some such.21:23
codebrulee left21:23
jrmuizel left21:24
gberdyshev joined21:24
gitte wshimmy: sorry, I am a bit too annoyed with clueless persons, have no mind for the diff engine.21:24
okram joined21:24
wshimmy gitte: heh, no problem21:25
azumanga OK, a different concrete comment. Do you think (I may e-mail the git mailing list anyway) an option in git which moved all deleted branches into some kind of "attic", from which they could be recovered for all time, would have any chance of acceptance? Obviously such an option would not be the default.21:25
azol left21:26
tote how can i setup gitweb to have a little git link for every project like on http://git.kernel.org/ ?21:26
Ilari azumanga: As cronjob command, something like 'git fetch <repo-URL> refs/*:refs/remotes/repoX/`date -u +%Y%m%dT%H%M%SZ`/*' run from dedicated bare repo?21:26
riddochc azumanga: rather unlikely21:26
wshimmy azumanga: probably not, for the reason gitte gave earlier about accidentally pushing sensitive information21:26
doener azumanga: dunno... deleting branches in a remote repository is probably one of the less used commands21:26
s/less/least/ even21:27
Ilari azumanga: Can be done using hooks.21:27
memiux joined21:27
azumanga llari: Ah, thanks, that looks like a good idea. I'll give that a try21:27
gitte wshimmy: I would have more reasons, too, but I have better things to do than to waste my time, thankyouverymuch.21:28
kwatz left21:28
Ilari azumanga: Branch deletes are visible to *-receive hooks as ordinary update instructions, with new sha values being all zeroes (40 of them).21:28
gitte whistles "Do I need a rationale?" No, obviously not. D'oh!21:28
azumanga gitte: Do you really think I haven't provided a rationale?21:28
walken hmmmm. I have a question too. been wondering what .git/branches is for (all my branches seem to end up in .git/refs/heads instead). And in particular, why git-new-workdir does not symlink .git/branches.21:28
azumanga Anyway, you aren't being helpful, so it doesn't really matter21:29
Ilari walken: Its obsolete.21:29
bgerber left21:29
walken Ilari, thanks, that's what I thought but I wasn't sure.21:29
gitte azumanga: you do _not_ have any rationale, you have _not_ thought things through, otherwise you would _not_ insist on that _stupid_ insistence that allowing to delete branches would be a hole in a VCS.21:29
azumanga Thanks doener, llari, I have some good things to look at now. I will report back if it works smoothly, as other people might want it.21:30
gitte azumanga: it is _completely_ moronic to assume so, for the same reason it would be _completely_ stupid to disallow deleting files.21:30
azumanga gitte: Deleting files is completely different to deleting branches in git21:30
gitte azumanga: and now think things through and don't accuse people who did as being unhelpful.21:30
Ilari walken: Hasn't been used since at least 1.5.0.21:31
gitte azumanga: you can also go to #subversion, as far as I am concerned, just stop wasting time on #git. You have a brain, use it before asking questions.21:31
azumanga gitte: because if I delete a file, I can get it back, for all time. Surely you wouldn't suggest that deleted files can't be recovered, because why would anyone delete a file if they might want it back later?21:31
Gnutoo joined21:31
gitte azumanga: "Deleting files is different from deleting branches".. pfff!21:31
azumanga: I say "pfff!"21:31
azumanga: OF COURSE you need to be able to delete files _AND LIKEWISE_ branches.21:32
azumanga: and you cannot get back a deleted file if you did your job properly.21:32
azumanga gitte: Yes, but part of the point of a VCS is that you can rewind time, and recover previously deleted files21:32
gitte azumanga: IN CONTRAST you can get back a branch in git.21:32
Gnutoo hello, I don't know why but I've a file that I don't want included and that is included(like when you include files with git add)...how do I get rid of it(I've done git commit but I've not pushed yet...)?21:32
gitte azumanga: so _STOP WASTING TIME ON THIS CHANNEL_21:32
zedr0n joined21:33
bleything gitte: lay off the caps and underscores. if you feel like your time is being wasted, go do something else.21:33
gitte Gnutoo: you cannot, according to this azumanga guy here in this channel who wastes all of our time.21:33
qrush joined21:33
zedr0n left21:33
Ilari Gnutoo: rebase -i ?21:33
wshimmy Gnutoo: you can git reset it and then git commit --amend if it's the latest commit21:33
gitte bleything: I am here for some other reason than to hear rationale-less ranting.21:33
Gnutoo it's the last commit21:33
I've to do only one commit21:34
Ilari Gnutoo: If there's only one, 'git rm --cached' it and then 'git commit --amend'.21:34
Gnutoo thanks a lot21:34
Ilari Gnutoo: Also works if its only in latest commit (and latest commit hasn't been pushed out).21:34
Gnutoo I didn't push yet...I always review my commits before pushing21:35
Ilari Gnutoo: Good idea.21:35
riddochc Gnutoo: You might want to look at git gui - makes editing previous commits, and knowing what you're committing, a lot easier.21:36
gitte Gnutoo: which commit is it? The latest one?21:36
Gnutoo that's what I use21:36
yes the lastest one21:36
bremner_ joined21:36
gitte Gnutoo: Ilari's advice was very good: rm --cached the file.21:36
tote how can i setup gitweb to have a standard clone url for every project it serves?21:36
leo2007 do I need to treat binary files such as .png or .pdf files carefully?21:37
gitte Gnutoo: then you need to "git commit --amend", which basically redoes the latest commit according to the current staging area.21:37
radarek left21:37
gitte Gnutoo: but verify that everything worked as you wanted it to, by "git show HEAD" after the commit.21:37
killerchicken__ joined21:37
Ilari leo2007: If you want, you can mark them as binary. But usually not needed. Especially if on unix.21:37
Gnutoo thanks21:37
riddochc Gnutoo: in the 'commit' menu of git gui, there's "amend last commit"21:38
Gnutoo git rm deleted the file not the change...I'll reset what I've done and do it again21:38
hopefully I saved the commit message21:38
azumanga doener: Thanks, I've tested receive.denyDeletes on our public repo, and that does exactly what I want.21:38
Ilari Gnutoo: Resurrect the file from latest revision?21:38
Gnutoo good idea21:39
Ilari Gnutoo: And then rm --cached it.21:39
okram_ joined21:39
Gnutoo git checkout -- file if I remember21:39
okram_mfontani21:39
Ilari Gnutoo: Actually, you need 'checkout HEAD -- file' since you want it from latest revision.21:39
hoohah joined21:39
Ilari Gnutoo: 'checkout -- file' grabs it from the index (and git rm likely nuked that).21:40
jayallen left21:40
Gnutoo ok thanks21:40
Ilari leo2007: Except that one needs to be careful when modifying them, since they can't be merged.21:40
hoohah hello. how git handle symlinks in a repo? when i clone it, will the symlink remain intact?21:40
wshimmy points to his previous suggestion of git reset :)21:40
Ilari hoohah: Symlink targets are treated as opaque blobs.21:40
leo2007 Ilari: yes, that's my concern them.21:40
Ilari: how to modify them21:40
hoohah Ilari: what you mean?21:40
Ilari hoohah: Symlinks can be added. They are stored as symlinks, but no further interpretation is done.21:41
bremner_ left21:41
solydzajs joined21:41
Ilari leo2007: You get nasty merge if you modify binary file in different ways on two branches and then merge those two branches.21:42
gitte Gnutoo: you can always see what the new commit would look like with "git diff HEAD^"21:42
Gnutoo ok thanks21:42
hoohah Ilari: ah good. that is what i after21:43
i'm21:43
gitte doener: seems that I had to shout before your answer was finally accepted anyway.21:43
leo2007 how to better handle them, Ilari21:43
Ilari leo2007: PDFs and pngs are essentially unmergeable. There's essentially no way around it. If the PDF is generated from other files, maybe its better not to put the PDF there?21:44
pasky why are they unmergeable?21:45
just choose one version21:45
esp. for png that's usually just fine21:45
matthewmcculloug joined21:46
sakyamuni left21:46
killerchicken_ left21:46
leo2007 does that mean if I have many branches I'd be better modify them in just one branch?21:46
WALoeIII joined21:48
feanil left21:48
qrush_ joined21:48
leanucci left21:48
jayallen joined21:49
Ilari leo2007: Actually, maybe just propagating changes to all branches as soon as possible is enough. But problem turns bit nastier this is multiple-dev project.21:50
mozinator left21:51
qrush left21:51
leo2007 Ilari: if I modify them on one branch, would that prevent me from all these problems?21:52
john3909 left21:52
kallepersson joined21:52
Minimiscience joined21:52
leo2007 I'd like to stick to one practice to avoid problems. I'm working on a latex project so I'd need to include some images in .png and .pdf format21:52
solydzajs left21:52
Aides convert them to tikz ;)21:53
okram left21:53
azumanga Are these .pngs and .pdfs auto generated?21:53
I assume the .pdfs are the paper itself, latexed?21:53
kallepersson Hi! A very basic question: If I pulled the code 10 minutes ago, my friend comitted a change 5 minutes ago (which means my code doesn't have the changes he made), how would I to do push my code without overwriting his changes?21:54
azumanga I've found it best to not store the .pdfs of the paper, assuming it is easy to regenerate them from the late source, to avoid conflicts21:54
Ilari kallepersson: pull again?21:54
suman_g left21:54
kallepersson Ilari: wouldn't that overwrite my changes?21:54
Ilari kallepersson: Commit first.21:54
leo2007 azumanga: no21:54
kallepersson Oh!21:54
squentin_ leo2007: I think what you should do is just never modify them, just use a new filename if you want to modify one21:55
leo2007 azumanga: no the .pdf are images exported from other programs21:55
mfontani left21:55
Ilari kallepersson: And to push the changes, you would have needed to commit anyway.21:55
kallepersson True21:55
leo2007 squentin_: that's very problematic, that means I also need to modify the .tex source.21:55
Minimiscience If a subdirectory of a Git repository evolves into its own project, what would be the best way to give it its own repository with history?21:55
Should I just clone the repo and delete everything outside of the directory, optionally rebasing away the history of the other files, or is there a cleaner way to do it?21:55
azumanga leo2007: Ah, sorry. in that case, things do get more complicated. Obviously, if you don't put different copies in different branches, everything will just merge fine. It's only if you change the picture in multiple branches, in which case you will need to think about which one you want to merge anyway.21:55
Ilari leo2007: What about after doing each modification, merge/rebase all affected branches immediately before further changes? That should ensure no conflicts on those files.21:56
Aides Minimiscience, there is git filter-branch example on this21:56
squentin_ leo2007: keeping track of changes in text file is what git knows how to do21:56
Aides Minimiscience, you're looking for --subdirectory-filter option21:56
gitte Minimiscience: --subdirectory-filter21:56
Minimiscience I did not know that; it looks like it should work.21:56
name left21:57
clamothe joined21:57
leo2007 squentin_: I'm not questioning that. Just that this approach is not efficient. it requires unnecessary changes to the source.21:57
Ilari leo2007: If all non-mergeable files really have linear history (per-file history) just keep with seperate filenames?21:58
icwiener_ left21:58
walken left21:58
kallepersson Thanks21:58
kallepersson left21:58
clamothe left21:58
squentin_ leo2007: well you can modify them, it's just that when you want to merge 2 branches with different version of them, you'll have to choose one21:58
leo2007 and git knows that are binary21:59
squentin_ yes21:59
Ilari leo2007: And since those files are autogenerated, presumably you could generate merge result somehow?21:59
leo2007 ok that sounds good22:00
thank you all for clearing my concerns22:01
Ilari leo2007: Or just take one of the merged versions as the new version.22:02
leo2007: (git checkout --ours/--theirs -- file').22:02
lightcap left22:02
krh left22:03
azumanga Thanks for comments everyone. Goodnight22:03
leo2007 Ilari: thanks, I'll keep that in mind. I haven't used the --ours/--theirs options before22:03
azumanga left22:04
Minimiscience left22:04
Ilari leo2007: If you have old version, you might need to upgrade git.22:04
leo2007 Ilari: I'm using 1.6.2.422:05
Sho_ left22:05
solydzajs joined22:07
dmlloyd_ joined22:08
Ilari leo2007: Should be new enough for most features. Of course, 1.6.3.1 is out...22:09
d0k left22:09
leo2007 Ilari: thanks. I'll update it later on.22:10
SRabbelier joined22:10
Tuomas left22:10
dmlloyd_dmlloyd22:12
dwmw2 left22:12
riddochc left22:12
bcardarella left22:13
ph^ left22:13
naeu joined22:14
ericindc joined22:15
LiamH left22:15
cmarcelo left22:15
gitte still tries to think about parent-less commits as ways to track large binary files22:17
azumanga joined22:18
__iron left22:19
wshimmy gitte: where they would just be replaced rather than compared in a merge?22:22
gitte wshimmy: yes, the idea is to avoid having the whole complete history of the binary files.22:23
wshimmy: there was a talk about tracking huge binary files with Git at the GitTogether 2008.22:23
lightcap joined22:24
wshimmy gitte: whats the downside to the parent-less commits method?22:24
gitte: other than being unable to commit a binary and a source file in the same commit id imagine?22:25
sergiodj joined22:26
scarabx joined22:26
azumanga I have pulled a update to a repository. Someone else as added various tags, which I can see with gitweb, but "git pull" seems to have only pulled about a third of the tags to my computer. Any ideas why, and how I get the rest?22:26
dwave left22:27
bdiego left22:27
lorandi left22:28
wshimmy azumanga: git pull --tags22:28
azumanga: see git help push, it explains what gets pulled and what not22:28
err, obviously git help pull22:28
gitte wshimmy: the downside is that merging is not possible. That would need the history.22:29
azumanga Ah, thanks, I missed that entirely!22:29
Wonder how they ended up historyless22:29
bx2 left22:29
azumanga I believe they came from a svn import, so possibly something weird happened there22:30
wshimmy gitte: but this is for files that can't be merged anyways?22:30
azumanga Yes, they were 'svn tags' that someone commited changes to (as a tag in svn is just a directory you can commit to), which, not unsuprisingly, confused the conversion process (I think)22:31
giallu left22:33
qrush_ left22:33
ciskje left22:33
qrush joined22:34
WinterWeaver left22:34
psoo left22:34
mitkok joined22:34
lourense joined22:34
naeu left22:36
SRabbelier left22:38
SRabbelier joined22:38
hoohah hello. how do i get the basename of the git repo I'm currently in?22:39
gitte wshimmy: binary files can be merged if you have an appropriate merge helper.22:40
hoohah also, if i'm in separate non-git dir, and I want to perform a git ls-tree on a git repo dir, how do i do so?22:40
wshimmy gitte: ah, right22:40
hoohah (for purposes of scripting)22:40
kraymer left22:41
sakyamuni joined22:41
gitte wshimmy: we would have a GSoC project to implement domain-specific merge helpers, if the student hadn't been led down the wrong path by someone on the mailing list.22:42
flazz left22:43
leanucci joined22:43
SRabbelier gitte: why so sour?22:43
wshimmy gitte: how manual is this merge process with a helper?22:44
Gnutoo left22:44
gitte SRabbelier: I could have used those merge helpers myself.22:44
wshimmy: depends on the merge helper.22:44
wshimmy gitte: i would think that in a lot of cases they would be mainly just 'converting' the binary format into something that could be compared or merged by hand22:47
but perhaps im just unimaginative ;)22:47
khmarbaise left22:47
gitte wshimmy: well, in the most general case, the merge _must_ be manual.22:47
wshimmy: however, very often, a clever program can help to resolve the common conflicts almost automatically.22:48
wshimmy gitte: but for a completely manual case, you don't need the history anyways since you're not doing a three-way merge, right?22:48
gitte: that seems very impressive. i have not thought about this in the slightest, clearly. :P22:48
wmoxam left22:49
gitte wshimmy: a merge is only necessary when there are two different lines of development.22:49
qrush_ joined22:50
gitte wshimmy: so it would very much be a 3way merge.22:50
wshimmy: that's what our default merge does with text files.22:50
hpoydar left22:51
javatexan left22:52
wshimmy ...right, that was dumb22:52
qrush left22:52
richcollins joined22:53
jayallen_ joined22:53
richcollins How do I handle this? git pull steve master:new-db22:53
! [rejected] master -> new-db (non fast forward)22:53
azumanga left22:54
sunoano left22:54
richcollins I would expect a merge conflict message if that were a problem22:54
Aides git checkout new-db; git merge steve/master22:54
not neccessarily22:55
but probably22:55
it means that a merge is required, it doesn't mean that there will be conflicts22:55
fooljay_ joined22:55
Ilari richcollins: That syntax looks odd.22:56
richcollins Aides: That is fine, why doesn't it go ahead with the merge and tell me if there are conflicts22:56
Ilari: It might be wrong22:56
cannonball left22:56
Ilari richcollins: Merge requires working tree.22:56
Aides probably because its not checked out22:56
richcollins I am pulling from the remote named steve and attempting to merge the brand master on steve with the branch new-db locally22:56
I did check it out22:56
wshimmy gitte: but i still don't see why that is merge-prohibitive22:56
richcollins * new-db22:56
wshimmy gitte: if i understand the 3-way merge git uses correctly (and i hope i do)...take the two differing parents (but none of their histories) and do its merge thing, right?22:57
richcollins Ilari: Is that the correct syntax for the operation I described?22:58
gitte wshimmy: actually, take the base and both new versions, and present only the differing developments.22:58
Ilari wshimmy: Having common ancestor version available lets to resolve many kinds of conflicts.22:58
Aides richcollins, you need to run git merge steve/master now22:59
wshimmy gitte: so if i want to merge my parent-less binary commit abcde with your parent-less binary commit 12345, it would need only abcde and 12345 to reach the final version22:59
Ilari richcollins: Usually pull is invoked with designation of remote repo and branch on remote repo.22:59
agile joined22:59
Ilari richcollins: So usually something like 'git pull foo bar'.22:59
wshimmy gitte, Ilari: well, im speaking only in the very manual merge resolution case22:59
gitte wshimmy: one thing would be to help merging OpenOffice files by presenting the user with a way to see and resolve the conflicting changes.22:59
richcollins Ilari: How do I know which local branch it will be merged with in that case?22:59
I added :new-db to explicitly merge with new-db23:00
gitte wshimmy: but the parent-less merge (i.e. a 2way merge) would not be able to know which side to take.23:00
Ilari richcollins: Current branch.23:00
richcollins: And if you want to try to fast-forward some local branch, use fetch, not pull.23:00
richcollins Ilari: OK I just wanted to be explicit to avoid merging with the wrong branch23:00
gitte wshimmy: in a way, a 2way merge would be possible, by assuming an _empty_ base.23:00
wshimmy gitte: but you would be presented all of the conflicting changes by the merge driver and choose it yourself23:00
richcollins Ilari: I wanted to fetch and merge23:01
it isn't a fast forward23:01
almostautomatedalmostautomated|23:01
gitte wshimmy: that's also what we do with text files, when merging two branches where the conflicting file did not exist in the merge base.23:01
wshimmy: yes, something like that would be needed.23:01
wshimmy gitte: seems better than nothing (or are there already binary merge drivers im ignorant of that work just fine atm?)23:02
gitte wshimmy: (The same as with lacking file in merge base happens when merging independent branches, i.e. branches without common history)23:02
wshimmy: AFAIR there are some very special merge helpers that haven't been published.23:02
wshimmy: I started something for .odt files, but it never was stable enough to be used properly.23:03
wshimmy gitte: those not withstanding, the current procedure for binaries is just 'replace blob'?23:03
juanjoc left23:04
gitte wshimmy: no... the current procedure is: here are the two versions, <file>~HEAD and <file>~deadbeef, choose your poison.23:04
wshimmy gitte: er, right23:05
Ilari richcollins: You were probably lucky it hit non-ff. Because pull syntax you used _still_ merges with current branch.23:05
richcollins I thought the refspec syntax was src:dst23:06
which dst is it referring to?23:06
wshimmy gitte: so i guess i would just see the merge drivers as "choose your poison...carefully"23:06
static^ left23:06
Ilari richcollins: It is. pull passes the refspec down to fetch and then merges what was fetched into current branch.23:06
gitte wshimmy: heh, _much_ more carefully ;-)23:06
doener left23:07
gitte wshimmy: same as presenting conflict markers in text files is way superior than just giving the user both versions of the file.23:07
wshimmy gitte: so it wouldn't allow for the automagic. but i would still think of it as a pretty big improvement23:07
bcardarella joined23:07
richcollins So the refspec refers to the remote but not the local?23:07
altrux i need architectural help.23:07
richcollins And the : syntax doesn't apply to fetch23:08
altrux i have a set of projects, which all share code. and i want to factor a large part of that shared code out23:08
gitte wshimmy: oh, but it could allow for automagic. Think .zip files: they can be merged easily if only timestamps differ.23:08
wshimmy gitte: but without parents you still don't know which one to take, or?23:08
altrux and put it i its own repo. the problem is it isn't in a single directory, its spread, willy, nilly, across a few directories, mixed into the other projects. i can not change this, due to the framework.23:08
Ilari richcollins: And push and fetch interpret refspec 'master' quite differently.23:08
wshimmy gitte: er, a mutual ancestor23:08
gitte wshimmy: I know what you meant.23:09
richcollins Ilari: shocking23:09
ok I think I've got it ... thanks for your help23:09
jayallen left23:09
gitte wshimmy: without merge base, you do have to assume that the common ancestor is empty.23:09
MisterN left23:09
altrux is there a way to have submodules, or some such, cover just some files, and not any others, and have the main project ignore those files, without creating some crazy ..gitignore of specific files and such?23:09
drdave joined23:09
Ilari richcollins: While push copies src to dest if there is no RHS, fetch fetches to FETCH_HEAD if there is no RHS.23:10
gitte wshimmy: so that the parts that are common between both versions of the file are recognized as identical changes, and therefore unambiguous.23:10
wshimmy: only that this might be very difficult with binary files.23:10
wshimmy: for example, if you want to merge bitmap images, a naive way would be to merge pixel-wise.23:10
aspotashev|eeepc joined23:11
jayallen_ left23:11
drdave Hi, I am trying to display the previous revision of a particular file:23:12
using the23:12
git show HEAD~1:relativePath syntax23:12
bcardarella left23:13
context joined23:13
drdave The problem is if I commit a different file - then HEAD~1 is no longer the previous revision23:13
Ilari Simple bitmap merge algorithm: Given bitmaps A and B with ancestor C, compute pixel-channel-wise: X = C + (A - C) + (B - C). :-)23:13
drdave I need to use HEAD~223:13
Ilari drdave: Then HEAD~2:path'?23:14
drdave how do I get the previous revision of a given file?23:14
gitte wshimmy: anyway, time to get some sleep. Thanks for the interesting conversation!23:14
gitte left23:14
drudge joined23:14
drdave The nly way I can think of doing it at the moment is getting the log and moving down a couple of lines and extracting the hash...23:15
Must be an easier way?23:15
And faster :)23:15
_swien_ joined23:15
_swien_ hi23:16
aspotashev left23:16
Ilari drdave: The syntax of ':' operator is '<committsh>:<path-to-file>'. HEAD~2 is valid committish assuming 1st-parent of 1st-parent of current commit exists.23:16
SRabbelier left23:16
drdave I can't use HEAD~2:path - as all I want is the previous text - and I don;t know how many other files have been changed.23:17
solydzajs left23:17
Ilari drdave: '`git rev-list -1 HEAD -- file'^:file' or something like that?23:18
drdave AFAIK - the integer in HEAD~2 refers to the was the file was 2 commits ago - but 2 commits for any change / file23:18
j416 left23:18
drdave I want 2 commits for that particular file23:18
Wow.... that one is new / makes no sense at all to me :)23:19
fooljay_ left23:19
drdave I'll take a look at "rev-list"23:20
Can you translate?23:20
especially the last bit - -- file'^:file'23:20
Ilari drdave: `` is shell substitution operator. Shell runs the command inside and pastes its stdout over it and then runs the whole command.23:20
drdave k23:21
Ilari drdave: And that first one had one ' where there should have been `23:21
drdave I'm going to need to pass an actual path somewhere - can you give us an example with a path in it?23:22
Ilari drdave: For instance 'echo foo`echo bar`baz' prints 'foobarbaz'.23:22
matthewmcculloug left23:23
agile left23:24
Ilari drdave: git show `git rev-list -1 HEAD -- builtin-mv.c`^:builtin-mv.c23:24
drdave thanks.... will wrap my head round it :) Not quite got logic of shell substitution operator yet :)23:25
Ilari drdave: There's also another substitution operator: '$()'. That one can also be nested (and presumably has some other differences as well).23:25
drdave k23:26
wshimmy left23:26
drdave How would git show `git rev-list -1 HEAD -- builtin-mv.c`^:builtin-mv.c be written long hand then23:26
solydzajs joined23:26
dodo_the_last left23:27
Ilari Quite useful to have nested substitutions when playing with commit-tree...23:27
drdave true23:27
wshimmy joined23:27
drdave ah... think I'm getting it - its a sort of merge23:27
joshthecoder left23:28
wshimmy arg23:28
Ilari drdave: On my git.git copy (bit out of date), the rev-list resolves to 5aed3c6ab834367292bd7a9b0894177a07afd910, so the shell runs 'git show 5aed3c6ab834367292bd7a9b0894177a07afd910^:builtin-mv.c', which is equivalent to 'git show c8ba6b1b199bf00f227e8fdad4adb5a2147c8160:builtin-mv.c', which resolves to 'git show bce9959293e30925c4b16c40ac33a3f2e0474e30'23:29
Gitbot [git 5aed3c6ab]: http://tinyurl.com/q8ac93 -- builtin-mv.c: check for unversionned files before looking at the destination.23:29
drdave everything between `xxxxxx` gets run and subsitituted - then the outer shell command is run - something like that ?23:29
fridim_ left23:29
Ilari drdave: Yes.23:29
drdave Great23:29
moonflux left23:30
drdave thanks a bundle23:30
joshthecoder joined23:30
altrux left23:32
_swien_ left23:34
keystr0k joined23:35
keystr0k Git doesn't track empty directories (or so I've read). Does this mean it won't delete them if I go back to an earlier commit that doesn't have them?23:36
mugwump no, it doesn't mean that23:37
Fullmoon joined23:38
mithro left23:39
keystr0k mugwump: darn.23:39
mugwump it won't delete them if there is content which is not tracked there though23:39
ie, it removes files it put there. if there is nothing left in a directory, the directory is removed23:40
cpg joined23:40
shame joined23:40
shameagile23:40
keystr0k mugwump: so that kinda stinks... My web app has a bunch of empty folders that *might* be needed sometime... and I want to preserve them. So I have to add a hidden file to each or something?23:40
eross joined23:40
shruggar joined23:40
mugwump yes, eg .gitignore23:41
keystr0k mugwump: mmkay. thanks23:41
eross I'm used to the debian apt-get, what is git?23:42
SRabbelier joined23:42
cxreg "I'm used to food, what is gasoline?"23:43
mugwump eross: git-core23:43
see also apt-cache rdepends git-core23:43
eross git-core is already built-in?23:43
SRabbelier left23:44
mugwump it's already packaged for debian, yes23:44
if you're on debian stable then try the versions on backports.org23:44
eross ok just one thing i read touted in a linux journal about the latest thing23:44
SRabbelier joined23:44
Voight-Kampff joined23:46
eross left23:47
hoohah left23:48
Alinermedia left23:48
plasticine left23:49
cytrinox joined23:50
the_zenozeno^n823:51
plasticine joined23:51
mike_m joined23:51
mitkok left23:52
richcollins left23:53
Fullmoon left23:54
cytrinox_ joined23:56

Logs Search ←Prev date Next date→ Channels Documentation