IRCloggy #git 2008-09-18

Logs Search ←Prev date Next date→ Channels Documentation

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

2008-09-18

raz i must say i'm less than impressed by git's legendary merging abilities. admittedly this was my first merge, but it was quite a lot more painful than with svn :\00:00
i'm especially confused as to why git insisted on giving me a 3-way merge when there were only two differing versions around.00:00
do better merge-tools use the "ancestor" information to assist, e.g. will they display *two* panes?00:01
raz is tired, plz forgive me using e.g. instead of i.e. all the time ;)00:01
p4tux left00:01
Eridius raz: better tools actually use the ancestor00:02
vimdiff doesn't appear to do that00:02
LostInTheWorld left00:02
raz well, the best merge tool i know is "meld". but i cant get it to work on this box.. grrr.. pygtk screwups00:03
is there a way to have git-pull simply put a ".new" file instead of scattering merge-markers over the existing file?00:04
since git-mergetool fails on me i'd prefer to do it by hand next time00:04
vimdiff works quite well when only two files are involved :)00:04
mugwump just used git-commit -m blah filename00:05
mugwump raz: write a script? see git-ls-files -u00:05
raz hmmm00:06
RaceCondition left00:06
raz mugwump, in what order would i perform my actions? git-fetch, then git-ls-files -u to see conflicts?00:06
until now i simply used git-pull all the time, so i don't know much about other ways to do it00:06
containmentfield joined00:07
mithro left00:07
mugwump I mean, when you see an failed merge00:07
after git-pull (which is the same as git-fetch ; git-merge xxx)00:07
raz but that's too late. git pull already garbles the file00:07
containmentfield Hi all, so I would like to take two commits out of the current branch and make a new branch out of that, from the point at which the branch was created. What would be the best way to do that?00:08
twb joined00:08
containmentfield I was thinking about creating a branch from master and just applying those two commits to it. Does that make sense?00:08
twb Can I simplify "cd foo && git pull", so I don't need a shell? e.g. "git pull --chdir foo"00:09
svend_ left00:09
rafaelbandeira3 joined00:10
cods joined00:11
Pieter twb: git --git-dir pull perhaps00:12
zachinglis left00:13
clamothe left00:13
twb Hmm; git --git-dir midori pull --error--> fatal: Not a git repository: 'midori'00:13
imakethings left00:13
Pieter i think git-dir has to point to the .git00:14
and then you probably also need to give the path to the workt tree00:14
twb Hmm, that doesn't give an error. I wonder, though, if it will try to modify the wrong working directory.00:14
jackdempsey joined00:15
Pieter try git --git-dir=midori/.git --work-tree=midori pull or so00:15
twb Haha00:15
$ git --git-dir=midori/.git --work-tree=midori pull00:15
fatal: /usr/bin/git-pull cannot be used without a working tree.00:15
narflekw joined00:16
Pieter --work-tree=..00:16
twb OK. Now to generate a repo that's out of date again, so pull will try to edit the working tree00:16
i.e. to test that it DTRT00:17
Pieter git reset --hard HEAD^00:17
raz humm. how do i see the revision of a file in my working copy?00:17
Eridius raz: what do you mean?00:17
do you want the sha1 hash for the blob?00:17
twb Pieter: yeah, that's just written shit all over my parent directory00:18
raz Eridius, well, i said "git checkout $rev myfile"00:18
Eridius raz: the $rev there is the commit00:18
raz Eridius, yes, but how do i see that info when i come back later?00:18
Eridius you don't. when you checkout a specific file from a commit, git doesn't track that you did that.00:19
dewogalang joined00:19
Eridius well, I mean the checkout will update the working tree and the index. but it won't record what commit it used00:19
dewogalang left00:20
joshbuddy joined00:20
raz hmmm00:20
feels strange. so i have a file from a past revision in my wc but git-diff shows nothing.00:20
Eridius why should it show anything? your working tree matches your index00:20
dewogalang joined00:21
Eridius try git diff --cached00:21
raz hummm00:21
codeshot left00:21
DrNick or git status00:21
raz what does --cached do?00:22
Eridius it diffs the index vs HEAD00:22
rather than the working tree vs the index00:22
joshbuddy left00:23
raz how do you guys work with that stuff without getting horribly confused all the time? ;)00:23
Eridius hah00:23
Pieter it's pretty logical once you get into it00:23
raz hmm00:23
patmaddox left00:24
raz i don't get the advantage of this "index" thing...00:24
so far it has only managed to confuse me00:24
Eridius it's incredibly useful00:24
raz any use-cases?00:25
mugwump http://www.linuxmagazine.com/id/254700:26
containmentfield left00:26
Eridius sure. when you don't want to commit everything in your tree00:26
raz Eridius, in other VCS you just pick what you want and what you don't want...00:26
well, yes, staging files one by one is nice. but so far it has not yet outweighed the troubles that this concept gave me :\00:26
Eridius in git, you can add a file to the index, continue to make changes, then commit without picking up the new changes to the file00:27
mugwump http://www.scribd.com/doc/2545829/Embrace-The-Git-Index # free online version of that article00:27
Eridius why is it giving you any trouble at all?00:27
raz so i assume there must be a huge use-case00:27
Eridius `git commit -a`00:27
ben_h joined00:27
raz Eridius, yea, that part is easy, i'm doing it all the time. but everything involving hopping over different revisions is just strange.00:27
like that "git diff" thing00:27
Eridius wishes he saved an article he ran across a while ago explaining the uses of the index to subversion users00:27
clamothe_ left00:27
raz well, gonna read that article, maybe it enlightens me00:28
Eridius http://tomayko.com/writings/the-thing-about-git00:28
twb If I just do "git-archive HEAD", it emits a tarbomb -- extracting stuff to $PWD rather than $PWD/project-name.00:29
Ah, --prefix00:30
pjhyett left00:31
igorgue left00:31
Bryson left00:32
ben_h left00:32
twb Is there a way to get a (more or less) monotonically increasing natural number, along the lines of svn's "revision number"?00:33
Eridius twb: that concept doesn't make sense in the distributed world00:34
eddyp left00:34
twb How about the analog of "darcs changes --count" ?00:34
patmaddox joined00:34
twb Listing the number of changesets in the repo.00:35
Eridius git rev-list HEAD | wc -l ?00:35
note that this will count merges too00:35
git rev-list --no-merges HEAD | wc -l ?00:36
archis joined00:36
Eridius but the point is any sort of number like that is at best transient00:36
because the only way to have a revision number like that in a decentralized world is to designate one particular repo as the "authoritative" one and only give that repo the power to assign numbers00:36
mugwump twb: 'git describe' is normally what people use for that00:37
kanru left00:37
raz Eridius, i think comment 16 in that article (http://tomayko.com/writings/the-thing-about-git) sums up my opinion00:37
Eridius raz: you should have linked to the comment00:37
softdrink joined00:38
twb Eridius: I'm aware of that.00:38
raz Eridius, http://tomayko.com/writings/the-thing-about-git#comment-74399 sorry00:38
Eridius twb: what do you want this for?00:38
twb Eridius: creating snapshot Debian packages for personal use from a canonical upstream git repsitory.00:38
Eridius twb: use the timestamp of the latest commit?00:38
mugwump raz: you can still work like that if you want, just use 'git commit -a'00:38
twb Eridius: that would be a rather long string.00:39
Eridius: more to the point, I assume that git can backdate timestamps, since darcs and hg can.00:39
raz mugwump, the comment actually explains why the "tangled working copy problem" does not justify the index - it has been solved in other ways already00:39
mugwump, thus i'll keep on searching for index use cases :)00:39
Eridius twb: sure, but you have to explicitly tell it to00:39
mugwump look, it's the way it works, it has many advantages you don't understand yet, get over it00:40
Eridius raz: git supports basically every workflow under the sun00:40
twb Eridius: meaning that the monotonicity of the timstamp is not guaranteed.00:40
Eridius your argument is basically "but there's another way to do it". That doesn't mean the index is useless. It just means, well, that there's another way to do it00:40
mugwump twb: that's why you have topological sorting00:40
raz mugwump, i'm just trying to grasp these advantages. why is it so hard to find information about them if there are so many? i'm honestly curious, not a VCS zealot here.00:40
mugwump it's not hard00:40
Eridius raz: you're rejecting every possible use of the index that's suggested00:40
that's why it's so hard for you00:40
"no, I don't like that one" -- "why won't anybody tell me a single use?!"00:41
mugwump there's just a lot of them :)00:41
raz Eridius, ehm. which uses have you suggested?00:41
mugwump eg, the difference between git reset --soft vs git reset00:41
git filter-branch --index-filter00:41
Eridius raz: dude, I gave you an article to read about the index00:41
mugwump merging00:41
twb mugwump: $ git describe HEAD --error--> fatal: cannot describe '0943ac252e2f199c1c0c1d383201f698277c0fc1'00:41
mugwump twb: you need tags first (annotated ones, ie made with with git tag -m)00:42
any tag, tag the first commit ever if you like00:42
ben_h joined00:42
twb mugwump: there were some tags a ways back00:42
dewogalang left00:42
mugwump they're probably not annotated00:43
twb git tag lists eight of them00:43
raz Eridius, well, your one article was debunked in comment #16. and the other article explains in depth *how* git works but not *why* (i.e. for what).00:43
mugwump if you went 'git cat-file -t tagname' it would say 'commit'00:43
twb mugwump: hmm, what does annotation mean?00:43
raz anyways, i won't lose sleep over this, just wondering ;)00:43
mugwump heh, "debunked"00:43
Eridius raz: no, it wasn't debunked00:43
comment #16 was just somebody bitching about the fact that you're not testing exactly what you're committing, and saying it's possible to use another workflow00:44
that's not the same as debunking00:44
raz Eridius, well, it justifies the existance of the index with the "tangled working copy problem". but this problem has been solved by mercurial and bzr without using the index concept at all. i'd call that debunked, no?00:44
mugwump that comment does make a valid point - that you need to make sure that you are aware that making changes piecemeal might lead to broken commits00:44
MarcWeber left00:44
Bryson joined00:44
Eridius you can always reset to the commit and test later, before you push. Or you can use a CI server. Or you can just give up the idea that every single commit is going to have the full test suite run on it00:44
mugwump but it does not go the whole way to showing that this is impeded because of the index00:44
Eridius raz: you're missing the whole concept of MULTIPLE WORKFLOWS00:45
twb Eridius: incidentally, Darcs' commit-time test code will make a separate copy of the working tree without any unrecorded changes, and run the test command on that, rather than the potentially "dirty" working tree.00:45
Eridius and you can use the same "solution" in git too, with something like stgit00:45
mugwump or just a commit hook00:45
mercurial and bzr are simply less flexible, for many reasons including the lack of a staging area00:46
you can't script as well with those tools00:46
raz Eridius, hmm. so git is kinda the "do-it-yourself" vcs? self-assembly, batteries-not-included? ;) .. nah, i think most people use git in a similar way...00:46
Eridius raz: go ahead and ignore the index if you want. Many many people find it to be an extremely useful tool00:46
not the *only* tool, but *a* tool00:46
raz: the original git wasn't even billed as a VCS, it was billed as the tools to build your own VCS00:46
bts- joined00:46
Eridius but yeah, most people tend to use many of the common features00:47
like, say, the *index*00:47
raz Eridius, well, if it could just be ignored that would be nice. but it can't. pretty much every operation assumes knowledge of the index and how it works.00:47
mugwump have you seen git-gui yet?00:47
Eridius what's so hard about ignoring it? `git commit -a`00:47
saturnflyer joined00:47
RandalSchwartz now try a merge. :)00:47
harinath left00:47
RandalSchwartz and when it blows up, yoru index is your friend.00:47
mugwump isn't it nice that you're not forced to make the commit with one command, that you can build it up, make it look right, commit, perhaps notice you've made a mistake, amend it...00:47
raz ah well...00:48
mugwump you just don't get that with the others, not to the same degree00:48
kanru joined00:48
Eridius hell, I never even run `git commit -a`, I use `git add -u` first so I can run `git status` and make sure it looks correct00:48
raz mugwump, i simply don't see that as an advantage at all. and i don't get your other use-cases either. so i'll just shutup now :)00:48
kef left00:50
achew22 left00:50
mithro joined00:52
mwmw|out00:53
kef joined00:54
twb 10:46 <Eridius> raz: the original git wasn't even billed as a VCS, it was billed as the tools to build your own VCS00:54
ajonat joined00:54
twb Eridius: so it's another TLA! ;-P00:54
Eridius git is a TLA?00:54
twb TLA as in GNU Arch00:54
Eridius what? "GNU Arch" isn't a TLA. "GNU" is00:54
twb TLA = Tom Lord's Arch [implementation]00:55
twb is nonplussed by the apparent lack of background training in VCS hackers.00:55
Eridius TLA = Three Letter Acronym00:56
tongueroo left00:56
Jacolyte joined00:56
schacon left00:59
rmh3093 joined00:59
narflekw i want to tag every commit pushed to my remote origin, but adding a line to my post-update hook doesn't seem to do anything after a push from my working repo00:59
running the hook by hand on teh server woks00:59
mugwump chmod +x ?00:59
Eridius tag every commit? why?01:00
narflekw er not commit01:00
push01:00
Eridius ah01:00
narflekw sorry01:00
added `git tag -a -m 'testing' "autotag_`date +%Y%m%d%I%M%S`"` before git-update-server-info01:00
Eridius narflekw: did you try mugwump's suggestion?01:01
narflekw Erdius: it's already executable, and running ./hooks/post-update does exactly what i want01:01
it just doesn't appear to happen when i push01:02
Lars_G joined01:02
narflekw tho it does say it's updated the server info01:02
mugwump you need to specify what to tag01:02
narflekw ahhhhh01:02
mugwump it will be $1 or $2 or something01:02
Lars_G In case my friends fail me over there (points) I'm failing at a git basic use horribly and need some help.. Basically I pulled from a repo. I did some changes in a file. I pull again and git is telling me it can't merge (auto merge I bet). How can I manually merge?01:03
ben_h Lars_G: the changes you made aren't committed?01:03
Eridius Lars_G: it's probably telling you the file is no uptodate01:03
*not01:03
that means you have a dirty working tree01:04
Lars_G hhmmm let me check I think I commited... locally you mean?01:04
Eridius you need to commit first01:04
Lars_G not a push01:04
rmh3093 left01:04
Eridius right, locally01:04
pjhyett joined01:05
Lars_G doh01:05
I've used centralized CSV for so long, that I can't distinguish between commit and push01:05
Lars_G slaps himself01:05
Lars_G CVS01:05
saturnflyer left01:06
kbingham left01:06
ben_h you can still do it without pushing01:06
if you want to keep your changes local.01:07
saturnflyer joined01:07
Lars_G ben_h: I have to, no permissions on the remote01:07
;)01:07
ben_h :)01:07
Lars_G it's just bad habits from svn01:07
ben_h one way (and i don't know if this is considered the best/easiest) is01:08
git checkout -b lol && git pull origin master && git checkout master && git merge lol01:09
warthog9 joined01:09
ben_h or you could rebase lol01:09
if appropriate01:09
saturnflyer left01:10
Lars_G lol01:11
joshbuddy joined01:12
johnw if I merge lol, will get tell me "I haz no commitz for uz!"01:13
clamothe joined01:14
clamothe I am using git-svn. I created a branch of master, and made changes. Some other people made changes to trunk on the svn server.01:15
When I was finished with my branch, I svn-rebased my master branch. Then I merged my master branch into my personal branch.01:15
Now I want to bring my changes upstream01:15
irotas left01:15
clamothe I just merged master into my branch, so my branch should take complete precident.01:16
any suggestions?01:16
uau you shouldn't do merges if you intend to put the stuff back to svn01:16
rebases only01:16
clamothe gotcha01:16
any way to do it now then?01:16
marj joined01:17
uau well if you haven't done anything after the merge you can just delete it from the history01:17
clamothe I've done a few merges actually01:17
have 3 merges over time01:17
I could just make a diff of my branch and master01:17
and apply that to master01:18
right?01:18
it wouldn't preserve my commit logs01:18
but that's okay, I can compound them01:18
uau you cannot push history with merges with svn01:18
so somehow you have to construct a branch that's just additional non-merge commits on top of what git-svn has01:18
how to best do that depends on the details of what you've done01:19
clamothe I think it will be easiest just do `git diff master mybranch ... git apply mypatch` to master01:19
uau an easier way to do the same is "git checkout mybranch ." while on master01:21
parasti left01:22
uau that won't delete files i think, but otherwise it should set every file to the state they have in the checked-out version01:22
gretch_ joined01:23
nn joined01:24
Lars_G johnw: http://show.degopro.com/catz.jpg01:25
_VVSiz_ joined01:26
univate left01:27
univate joined01:27
ereslibre left01:29
gretch_gretchen01:29
tongueroo joined01:30
ereslibre joined01:30
Lars_G left01:31
mfwitten joined01:31
mfwitten Hello. Where can I read about grafts? Documentation/ doesn't have much from what I grep01:31
Eridius git-filter-branch is the only place I've actually seen documentation01:32
tongueroo left01:32
mfwitten ok01:32
JimmyB_ joined01:33
pjhyett left01:34
mfwitten What exactly are the technical reasons why a shallow repo has limitations?01:35
spearce left01:37
aiur joined01:37
jaredj joined01:38
jaswinder joined01:38
bogolisk joined01:38
bogolisk left01:41
jaredj noob question. i have gotten the torvalds linux 2.6 tree. i want to pull the patches from the v9fs dev tree. git pull blablabla/v9fs.git right?01:41
catbot_ joined01:41
jaredj oho look at this copious error message. nevermind, i'm sure it'll direct me well01:42
VVSiz_ left01:43
grindz left01:43
david_koontz left01:44
omally__ left01:44
Guest84351 left01:44
xhanjian joined01:46
johnw left01:47
joshbuddy left01:49
whee left01:53
markkalderon left01:54
xhanjian left01:57
xhanjian joined01:57
aiur left01:57
kef left01:58
cbreak left01:58
kef joined02:00
bobmcw joined02:00
davidfetter left02:02
ereslibre left02:03
davidfetter joined02:03
xhanjian left02:04
clamothe left02:07
capisce joined02:08
capisce_ left02:11
joshbuddy joined02:12
ijcd left02:13
bts- left02:13
rmh3093 joined02:14
sgrimm left02:15
^conner joined02:15
joshbuddy left02:16
^conner I'm having trouble creating a checkout/bracnch that merges two remote linux trees02:16
mfwitten git svn looks like it's doing NOTHING. Is this normal while it "searches for history" ?02:17
^conner i thought it should work something like (after adding the remotes): git checkout -b foo treeA;git checkout -b foo treeB02:17
but that pukes on me saying the branch already exists02:17
MaddHatter do you want git merge, maybe? (is there a git svn-merge?)02:19
xjrn left02:20
lima joined02:20
^conner MaddHatter, that could be it02:22
git merge netdev-2.6 tip02:23
clamothe joined02:23
^conner netdev-2.6 - not something we can merge02:23
hmm02:23
it doesn't work with branch names from those remotes either02:24
MaddHatter I don't use git+svn, so I can't help you much there02:29
jerbear joined02:31
ZorbaGama joined02:36
^conner MaddHatter, I'm not using SVN at all, I'm pulling linux git trees02:37
pygi left02:37
pygi joined02:37
MaddHatter oh... I merged your comment into mfwitten's I guess02:37
mfwitten MaddHatter: Yeah, I noticed ;-)02:38
k776 joined02:39
ZorbaGama I am having a weird issue I cannot find a solution for. I cloned a git repository, then pushed that to a new repository. The new repository didn't get the tags that the old one did (I'm not sure if it should have) but I also can't figure out how to add *new* tags - I can add them locally, but push/pull'ing to another system doesn't result in them showing up02:42
neurodamageneurodamage|away02:42
ZorbaGama is there some difference with how tags have to be pushed? or do I have something wrong on my config? I am unable to find a solution02:43
marj left02:43
offby1 ZorbaGama: I don't have any specifics02:45
just a couple of vague hunches02:45
1) tags come in two flavors: the kind you can push, and the kind you can't :) (The latter are sometimes called "lightweight" tags). Make sure you've got the former kind.02:46
2) _some_ command(s) don't move tags by default, although I suspect the command(s) I'm thinking of are "pull". Check the "git-push" man page to see if there's some option that means "please push the tags, too"02:46
schacon joined02:47
narflekw git push --tags02:49
ZorbaGama awesome, I shall check out both of those. I think the old ones weren't lightweight, but the one I made may have been lightweight. testing shall occur02:51
thanks offby1/narflekw02:51
twb left02:52
cilly left02:52
offby1 "There will be tests"02:53
kukks left02:54
ZorbaGama git push --tags did the trick02:54
narflekw =]02:55
hooks don't appear to be running after a push on my remote server02:56
jackdempsey left02:56
narflekw has anyone had problems iwth hoooks not running on a server accessed via http?02:56
specifically i'm trying to run a post-update hook02:57
merlin83 left02:57
mfwitten left02:59
Yuuhi left03:03
marj joined03:03
schacon_ joined03:05
schacon left03:05
statim left03:06
MaddHatter left03:06
statim joined03:06
MaddHatter joined03:08
schacon joined03:09
crab left03:10
LostInTheWorld joined03:13
jerbear left03:13
jeukku joined03:14
schacon left03:16
schacon__ joined03:18
schacon joined03:20
zachinglis joined03:20
zachinglis left03:20
lima left03:23
schacon__ left03:24
mw|out left03:26
schacon_ left03:26
bobmcw left03:26
Starnestommy left03:27
offby1` joined03:31
joshbuddy joined03:33
rafaelbandeira3 left03:35
loincloth left03:36
offby1 left03:39
offby1`offby103:39
schacon left03:39
Flathead joined03:40
schacon joined03:43
jeukku left03:50
kanru left03:50
schacon left03:51
neurodamage|awayneurodamage03:55
kanru joined03:56
jackdempsey joined03:58
joshbuddy left03:59
madewokherd left04:00
imyousuf joined04:00
narflekw left04:01
jackdempsey left04:03
zjason_ joined04:04
statim left04:05
jackdempsey joined04:05
kef left04:11
kef joined04:12
russells left04:16
pumpkin joined04:18
tchan left04:18
zjason left04:19
tongueroo joined04:19
rdavila joined04:22
priidu joined04:25
pumpkin a while back someone in here was very helpful in guiding me how to do something rather complicated with git, and now I've forgotten how it all worked04:27
I can't remember his name :/04:27
I'm trying to work out how I set it up because I need something like it again04:27
tjafk1 left04:28
tjafk2 joined04:28
offby1 bet it was ilari, Mikachu, or Tv04:28
pumpkin hmm nope04:28
anyway, I'll describe what's going on and see if anyone has any thoughts04:28
jackdempsey left04:28
offby1 between them they've probably accounted for 85% of my enlightenment in this channel04:28
pumpkin :)04:29
UVSoft joined04:29
UVSoft hi04:29
pumpkin well, I have a project that relies on a modified version of another open source project that's hosted on github04:29
UVSoft when i save a file in dos format, git shows a lot of ^M at the end of the lines, how to deal with it?04:29
pumpkin so I want to maintain my changes to this other open source project as part of mine04:29
and be able to update from their repo04:30
and keep it all in my repo, as the changes make no sense on their own04:30
so what I remember doing is setting up a self-referential git submodule04:30
after checking their project out into one of my branches04:30
offby1 UVSoft: "don't do that then"? DOS format is, by definition, "^M at the end of the lines".04:31
pumpkin or something like that04:31
offby1 sounds complex04:31
mario__ joined04:31
offby1 you can't just have your own branch, with your changes, into which you occasionally merge from upstream?04:31
I do that with Emacs -- I have a few tiny tweaks of my own, but otherwise track upstream04:32
pygi left04:32
pumpkin well, I need to track it in sync with my "enclosing" project04:32
UVSoft offby1, ok, suppose i have a file in dos format, than i make some changes in it and invoke git-diff, and see ^Mssss.... that's not what i want04:32
pumpkin which is where the submodule came in04:32
offby1 hmm04:32
pumpkin offby1: i.e., it would be nice to have a consistent history for the changes to the subproject, too04:33
offby1 UVSoft: seriously, I think there might be a way to avoid that, since it's got to be a commonm problem ... I just don't know what it is.04:33
pumpkin: doesn't my scheme do that?04:33
pumpkin hmm, I'm not sure04:33
MaddHatter UVSoft: you probably want to change config.autocrlf or whatever04:33
pumpkin I'm not that good with git yet04:33
I haven't ventured outside of my comfort zone much04:33
offby1 submodules sound like the wrong idea, since their whole purpose in life (if I understand correctly) is to _not_ track the upstream, but rather to stay stuck on one commit.04:33
pumpkin ah04:33
UVSoft MaddHatter, i have to store my files in dos format04:34
MaddHatter then you don't want git converting them to *nix format, so disable the autocrlf conversion04:34
pumpkin offby1: I'm sorry, do you think you could elaborate a little on how I would set your system up?04:34
offby1 hold on.04:36
pumpkin thanks04:36
offby1 so just "git clone git://whatever-it-is".04:36
then "git checkout -b my-hacks"04:36
edit to your heart's content04:36
UVSoft MaddHatter, and what is its default value?04:36
offby1 then when you feel like syncing with upstream, just do "git pull upstream my-hacks"04:37
pumpkin offby1: within my other git repo?04:37
offby1 ... other git repository?04:37
you have more than one?04:37
MaddHatter UVSoft: not sure, but I think it converts by default04:37
pumpkin well the point is04:37
offby1: I'll make this more concrete, sorry04:37
I'm making a ruby interpreter plugin for a program04:37
offby1 just don't drop it on my foot04:37
sure sure04:37
pumpkin and I need to make some changes to ruby for it, but I also have code of my own04:37
offby1 sure sure04:37
pumpkin so my own code is already in a git repo04:38
offby1 hmm04:38
pumpkin I'd like to check ruby out into that git repo04:38
make my changes04:38
and still be able to update from ruby (I'm using the matzruby from github)04:38
offby1 you want a repository that contains both your hacked-up ruby, and the plugin?04:38
pumpkin yeah04:38
offby1 that sounds dubious.04:38
pumpkin because they don't make sense individually04:38
offby1 I think if it were me I _would_ keep them separate04:38
pumpkin like, my hacked-up ruby has no point on its own04:38
offby1 yeah04:38
pumpkin I'm going to make tie-ins with the plugin04:38
offby1 well, you could add your plugin as a subdirectory of the ruby distro or something.04:39
or vice-versa, for that matter.04:39
But I think life will be easier with just one repository, not two.04:39
catbot__ joined04:39
pumpkin well, adding ruby as a subdir of mine04:39
means I can't update without pain04:39
unless I clone it into my other repo04:40
which then means I'm tracking a .git folder with git04:40
which feels dirty, but maybe it's not uncommon?04:40
softdrink left04:40
catbot_ left04:40
offby1 doesn't sound like the right thing.04:40
pumpkin adding my thing as a subdir from ruby just feels wrong04:40
EmilMedve left04:40
offby1 I suggest you try it anyway :)04:40
pumpkin hmm04:40
UVSoft but git show, git diff etc still show ^M at the end of the lines....04:40
MaddHatter you said you wanted the ^Ms04:41
k776 left04:41
pumpkin offby1: the solution this other person whose name I can't remember suggested worked nicely in exactly this kind of situation04:41
offby1 UVSoft: if you're using Cygwin, try msys; if you're using msys, try Cygwin :-|04:41
pumpkin just trying to remember how I set it up04:41
UVSoft MaddHatter, i want them in the file, but not in the output of git commands04:41
jeukku joined04:42
UVSoft it's rather annoying you know....04:42
MaddHatter well, then you _do_ want crlf conversion04:43
or no... you want the opposite of crlf conversion04:43
the only thing that comes to mind is to disable crlf conversion and use a pre-commit hook to add back the ^Ms04:45
(i.e. call unix2dos before the commit)04:45
SRabbelier joined04:45
offby1 I have this vague notion that it's actually a terminal thing -- maybe he could tell his terminal to simply not display carriage-returns as ^M, but I don't know how to do that04:46
MaddHatter it's possible the files actually have \r\r\n in them, too04:46
offby1 ick.04:46
UVSoft it seems that core.autocrlf true works, my files are checked in with only cr, and checked out with crlf, and git diff, etc doesnt show any ^M04:47
MaddHatter hey, if it were a Mac, it'd be \n\r04:47
offby1 's head spins04:47
offby1 WHY CAN'T WE ALL JUST GET ALONG?!04:47
MaddHatter UVSoft: yes, but you said you had to store them with ^M04:47
pumpkinpumpkin|out04:47
UVSoft MaddHatter, sorry it was my fault, i ment store in my working copy of the repo04:48
MaddHatter ah, well then your problem is solved :-)04:48
jackdempsey_ joined04:48
UVSoft thanks!04:48
pumpkin|out MaddHatter: no it wouldn't be :P04:49
not for the last decade, anyway04:49
MaddHatter well, I meant Mac as in Mac, not Mac as in OSX04:51
it's like Sun and version numbering04:52
you'd think a major company like that could, between them all, figure how to count04:52
pumpkin|out :)04:53
sgrimm joined04:54
UVSoft left04:56
eikonos left04:57
niki left04:57
xinming_ joined04:58
mario__pygi04:59
catbot__ left05:00
catbot__ joined05:00
statim joined05:01
mbuf joined05:03
xinming left05:11
bobesponja left05:13
tongueroo left05:20
langenberg joined05:21
rdavila left05:25
foca left05:31
langenberg left05:32
loincloth joined05:32
selckin left05:34
gittish joined05:35
theCarpenter joined05:36
LostInTheWorld left05:36
theCarpenter i have a desktop and a laptop; i want to be able to code on both of them05:36
offby1 aw, that's unrealistic05:37
don't be greedy05:37
offby1 whistles innocently05:38
theCarpenter how would i go about some sort of push-based setup with git? f.ex i want to be able to write a script that constantly pushes changes from one to the other every five minutes or so; how could git do that?05:38
offby1 you could have git do that, sure05:38
"git push" would work05:38
you'd create a bare repository on one box (presumably the desktop)05:38
tvachon joined05:38
offby1 then have the script run on the laptop while you're working.05:38
probably better to "push" deliberately though ... never heard of anyone doing it automatically like you're suggesting05:39
loincloth left05:39
tvachon left05:39
theCarpenter well i was kinda thinking that the push could be linked to git commit? is there an option for that, or a param?05:40
offby1 nothing built in, no05:40
theCarpenter hm okay.. should be easy enough to atuomate05:40
offby1 you might be able to rig up a hook on the laptop that does that though.05:40
I've never used git's hooks, so I don't know for sure05:40
clamothe left05:41
offby1 if all you want is automatic backup, git might be overkill.05:41
unison or rsync or something might make more sense05:41
theCarpenter well i mean i might want to work on one machine at one point and another machine at another05:41
clamothe joined05:41
offby1 yeah. What I do is: I have a central "bare" repository, and make clones of it on all those other machines.05:41
loincloth joined05:42
offby1 (And then I forget to "push", and forget which machines have which work)05:42
so I basically run git as a centralized system.05:42
offby1 glances around nervously.05:42
offby1 don't tell anyone.05:42
tchan joined05:42
offby1 the boxes are in a star topology: they all communicate via the central bare repository.05:42
qrush left05:44
neunon joined05:45
theCarpenter so what about creating the repos themselves05:47
dewogalang joined05:54
gittish left05:55
nn_nn05:55
mbuf` joined05:57
mbuf left05:57
namenlos joined06:01
priidu left06:05
FunkeeMonk joined06:06
kyofel left06:06
russells joined06:07
harinath joined06:12
MaddHatter theCarpenter: just git init, git commit, and git clone06:13
_nnnn06:13
MaddHatter and you can use a commit hook to push up to the remote, assuming you're always connected to the remote when you commit06:13
theCarpenter but is it possible to create a whole new repo on a diff machine like that06:14
MaddHatter what do you mean by "whole new repo"?06:14
git init creates a new empty repository; git clone copies an existing repository to a new location/machine06:14
pumpkin|out I think I have my epic git fu working06:14
theCarpenter i can push whole repos?06:14
pumpkin|out that's what you push06:14
or branches06:14
theCarpenter even if it doesn't exist before?06:15
Sput offby1: I'd say that's common for most projects, having a central "official, public" repository every developer pushes to06:15
MaddHatter yes, you can push branches that don't exist on the remote repository06:15
you can use --all to push everything06:15
theCarpenter i mean suppose im with my laptop in the middle of nowhere and i want to replicate it to my desktop as a kind of backup and os i can work on my desktop later06:15
okay06:15
pumpkin|out you'd typically init a bare repo on the other side and push to that06:15
theCarpenter okay06:15
pumpkin|out or just use github :P06:15
MaddHatter you need to put the bare repository somewhere that's accessible to every place where you want to actually do work06:17
Call that place A.06:17
deavid joined06:18
MaddHatter Then you can push from B, C, D, etc. to A as you do work at each of them, and pull from A to B, C, D, etc. as you want to update to the latest changes you've made elsewhere06:18
and A and B can both be separate directories on your desktop computer if you like06:18
theCarpenter4 joined06:22
JimmyB_ left06:26
loiseau joined06:27
helge left06:29
helge joined06:29
pumpkin|out hmm06:33
how can I make sure a remote in my .git/config stays around when I push it?06:33
dewogalang left06:34
thiago_home git push doesn't modify .git/config06:34
bentob0x joined06:35
reel_ joined06:35
pumpkin|out I mean06:36
oh I see06:37
so there's no way to have a remote that I have show up in the remote repo?06:37
Pieter you can push remote refs to there06:37
se git push --mirror06:38
*see06:38
pumpkin|out thanks, I'll check it out06:38
theCarpenter left06:41
rtomayko_ joined06:41
johan-s left06:42
imyousuf left06:43
bronson left06:48
pumpkin|out hmm, all I really want is for there to be an extra remote entry the .git/config in any cloned copy of my github repo06:51
is that not possible?06:51
Pieter no06:51
pumpkin|out hmm, fair enough I guess06:51
not a huge deal06:51
imyousuf joined06:53
schlort left06:54
schlort joined06:54
ph^ left06:56
pumpkin|outpumpkin|closet06:57
koke joined06:59
Weaselweb joined06:59
drizzd joined07:01
aiur joined07:06
bronson joined07:07
priidu joined07:10
johan-s joined07:11
BabelO joined07:13
rraasch joined07:13
CodeOfficer left07:14
bentob0x left07:16
archis left07:16
ph^ joined07:18
vintrepid joined07:18
kef left07:21
charon joined07:21
KelebekTurkce413 joined07:25
neunon left07:25
tritz joined07:26
gbucher joined07:29
pumpkin|closetpumpkin07:33
KelebekTurkce413 left07:34
ben_h left07:36
Flathead left07:37
Flathead joined07:37
tarbo left07:40
schlort left07:46
schlort joined07:46
nud_ joined07:48
ajonat left07:48
kef joined07:49
pgokeeffe_ joined07:51
reel__ joined07:54
priidu left07:59
priidu joined08:02
catbot__ how to fix such an error, as below08:06
$ git add README.txt08:06
error: unable to create temporary sha1 filename .git/objects/b1: File exists08:06
error: README.txt: failed to insert into database08:06
error: unable to index file README.txt08:06
fatal: adding files failed08:06
kef left08:07
drizzd_ joined08:08
catbot__ anybody can give a hand?08:08
seanius hmm... some kind of wierd evil twin issue?08:09
jello left08:10
christophsturm joined08:10
reel_ left08:11
drizzd__ joined08:12
markkalderon joined08:13
Zarin joined08:13
capisce_ joined08:13
gbucher left08:16
capisce left08:17
drizzd___ joined08:21
nn left08:22
drizzd left08:23
nn joined08:24
reithi joined08:24
aiur left08:25
aiur joined08:26
kyofel joined08:27
drizzd_ left08:27
rtomayko_ left08:29
drizzd joined08:29
nn_nn08:30
markkalderon left08:31
jmesnil joined08:31
drizzd__ left08:37
theCarpenter4 left08:40
drizzd___ left08:40
priidu left08:42
shodges joined08:42
shodges left08:42
priidu joined08:43
marj left08:44
marj joined08:45
pumpkin left08:46
mithro left08:47
Flathead left08:48
Fullmoon joined08:53
archis joined08:53
Fullmoon left08:53
reel__ left08:53
reel_ joined08:53
reithi left08:57
radarek joined08:58
hurikhan|Work joined09:01
koke left09:01
ereslibre joined09:01
charon catbot__: check permissions on .git/objects09:02
mcella joined09:03
not-xjjk joined09:05
gbucher joined09:11
Flathead joined09:13
deavid1 joined09:14
^conner left09:14
chris2 joined09:16
reel_ left09:16
pgokeeffe_ left09:16
BabelO left09:16
deavid left09:16
thiago_home left09:16
rphillips left09:16
clairvy left09:16
werdnativ left09:16
Eridius left09:16
uggabooh left09:16
Tv left09:16
Oompa left09:16
jettero left09:16
daniel-w left09:16
com4 left09:16
jeffpc left09:16
RaceCondition joined09:17
BabelO joined09:17
gbucher left09:17
xjjk left09:17
gbucher joined09:17
thiago joined09:18
jeffpc joined09:18
Zarin left09:18
fujin joined09:20
reel_ joined09:21
pgokeeffe_ joined09:21
thiago_home joined09:21
rphillips joined09:21
clairvy joined09:21
werdnativ joined09:21
Eridius joined09:21
uggabooh joined09:21
com4 joined09:21
Tv joined09:21
Oompa joined09:21
jettero joined09:21
daniel-w joined09:21
serp joined09:21
stick joined09:21
andres joined09:21
tmm1 joined09:21
johannes joined09:21
spool joined09:21
serp left09:21
johannes left09:21
serp_ joined09:21
johannes joined09:21
com4 left09:22
rphillips left09:22
com4 joined09:22
rphillips joined09:22
tmm1 left09:23
Sho_ joined09:23
spool hi, I feel like this is something I should be able to figure out, but thus far I can't: is there a way to resolve conflicts by always deffering to remote changes over local ones?09:23
tmm1 joined09:24
spool the canonical example is with a binary blob, for which diffs don't really make much sense09:24
doener binary blobs are just marked as unmerged IIRC09:25
there are no conflict markers added09:25
you're then free to replace the file with whatever version suits your needs09:25
cilly joined09:25
spool mmmm... I think my files isn't quite a binary (I used that as an example)09:25
it's a sqlite database09:26
doener you can use an attribute to explicitly mark it as binary09:26
spool oh really? how does that work?09:26
doener add a line like "filenameglob merge=binary" to a .gitattributes file09:27
rdavila joined09:28
uggabooh anyway, you can always get the proper version with "git checkout correctcommit file"09:28
mediogre joined09:28
doener and probably also "-diff", so that it's treated as binary for diff as well09:28
spool is .gitattributes placed in the root like .gitignore?09:28
diask left09:29
spool uggabooh: is correctcommit the hash of the right version?09:29
rdavila left09:29
doener works the same as .gitignore, yes. (You can place .git{ignore,attributes} files anywhere, not just the root of the repo)09:29
spool mmmm useful, thanks very much09:29
doener spool: the hash of the commit that contains the right version (or a ref that references that commit)09:29
spool: not the hash of the correct blob object itself09:30
spool doener: cool ok right09:30
doener: this has happened to me in a variety of ways, the worst being that I was tracking a remote repo, and AFAIK, I didn't change anythin locally, but then I ended up pulling a massive conflict09:30
\ask-_ left09:31
spool doener: so what I wanted was to just accept all the recent changes09:31
doener most likely, you did actually change something09:31
spool doener: would git checkout hash . have sorted it?09:31
doener no09:31
at least not in a generally sane way09:32
spool doener: :( I ended up just recloning09:32
doener: I mean, the weird thing is that if I did change anything, it certainly wasn't in the files that were conflicting09:32
imyousuf left09:33
doener you could also define a custom merge driver for those files, that always takes the version from the branch that you're merging into your branch, but that will be the wrong thing quite often when you merge back and forth09:33
spool doener: yeah I'd rather not do that. Recloning makes more sense in those cases09:33
doener spool: then maybe your upstream rebased (or rewrote history by other means), go and kick their a**09:34
spool doener: :) that's more likely09:34
doener: how would you deal with something like that? Is recloning the best workaround or is there a cleaner way?09:35
doener: without writing some crazy custom thing09:35
doener if you have no local commits that you care about, just reset --hard to the remote tracking branch09:35
spool doener: ahhhh that's what that's for09:36
doener: that command has always terrified me09:36
doener otherwise, you need to rebase your local commits onto the remote tracking branch, which can be painful09:36
Ademan joined09:36
doener how so? Even if you mis-use it, the reflog is there to save you09:37
(well, except for uncommitted changes)09:37
spool doener: or, if they've rebased, then would locally rebasing fix it?09:37
doener: It's mostly because I wasn't sure what it did, and I was afraid to screw things up09:37
doener: '--hard' has fairly dire connotations, purely on the basis of its meaning09:38
doener see above ;-) But you likely need to make use of --onto and look for the right commit to use as "upstream"09:38
so something like "git rebase --onto origin/master $first_commit_you_want_to_keep^ master"09:39
RaceKondition joined09:39
RaceCondition left09:39
spool woah ok, I had no idea you could do stuff like that09:39
felipe joined09:39
doener the fun only starts there, it gets interesting once you add -i to the mix ;-)09:40
spool does that mean interactive? that's another thing I've been meaning to learn but afraid to try09:40
doener yep09:40
nothing to be afraid about... the reflog saves you, and you can always just make a copy of your whole repo and play around09:41
spool does it work like mergetool? I think I tried it once I got quite confused.09:41
doener not at all09:41
ph^_ joined09:42
doener http://blog.madism.org/index.php/2007/09/09/138-git-awsome-ness-git-rebase-interactive09:42
reithi joined09:42
spool is that your blog?09:42
doener no09:42
doener doesn't have anything worthwhile to annoy the world with in a blog09:43
Araneidae I want to split an earlier patch into two parts, but I don't really want to bring the patch to the head first. How should I go about this?09:43
Yesterday you suggested reset HEAD^ when the patch is at the top of the tree, but now I've got one that isn't...09:44
doener Araneidae: you'll have to... use "git rebase -i $commit_you_want_to_split^"09:44
spool doener: your help has been quite worthwhile, and everyone has the option of not reading it09:44
Araneidae Yep, I was guessing that was where I would start09:44
doener Araneidae: change the first line (should be the commit you want to split) from "pick" to "edit", save, quit09:44
Araneidae ok09:44
doener Araneidae: that will bring you to a state where HEAD point to that commit09:44
then do the "git reset HEAD^; git add; git commit; git add; git commit" dance09:45
Araneidae Ah, I see. Then I can reset HEAD^ and carry on as before?09:45
doener and then "git rebase --continue"09:45
Araneidae Cool09:45
doener spool: thanks :-) But I kinda need the "interactiveness" of irc, or at least email. "Static" docs are what I suck at.09:45
Araneidae realises he wants to cherry pick part of the patch into another branch...09:46
spool doener: well, I guess irc logs give you the best of both, though you could have comments on your blog....09:46
doener Araneidae: really "cherry-picking", ie. duplicating the changes, or do you want to "move" the changes from one branch to the other?09:47
Araneidae: and do the changes you care about already form a single commit?09:47
Araneidae No, there's a change to one file deep in branch A which I want to apply to branch B.09:47
doener and the respective commit does more than changing just that file?09:48
Araneidae Unfortunately that change is combined with a bunch of other stuff that's not strictly related.09:48
So commit C = tiny change I want + bunch of other stuff09:48
doener you can do "git cherry-pick -n $C", "git checkout HEAD -- all the other files that were changed" and then "git commit"09:49
kbingham joined09:50
doener spool: we have logs of this channel :-) http://colabti.org/irclogger//irclogger_logs/git09:50
Araneidae Interesting suggestion doener. In this case "all the other files that were changed" is going to be tedious!09:50
spool doener: yes, the channel topic tells me so ;)09:51
Araneidae and it won't hurt to split out the patch anyway09:51
spool doener: an unrelated question -> is it possible to have git use dwdiff rather than diff for prose files?09:52
doener Araneidae: git checkout HEAD -- $(git diff --name-only HEAD | grep -v file_you_want_to_keep)09:52
vintrepid left09:54
doener spool: see "Defining a custom diff driver" in gitattributes(5) as a starting point09:54
Mikachu spool: you already know about git diff --color-words i guess?09:54
spool doener: awesome, thanks09:55
koke joined09:55
doener Mikachu: ah, good point :) didn't know what dwdiff is09:55
spool Mikachu: no I don't actually09:55
Working with a latex manuscript can be tricky09:56
Tv --color-words seems to be what most word-differs do, except with color instead of {+foo+}09:56
Mikachu dwdiff has a -c option for coloring, i think09:56
spool can I get color words to work with mergetool?09:56
Tv still loses to meld..09:57
Mikachu and i don't think you can specify word separators for --color-words09:57
spool Mikachu: yeah, these are reasons why I wanted to use it09:57
uggabooh all open source diff tools suck :(09:58
spool Mikachu: or this -> http://code.google.com/p/google-diff-match-patch/09:58
aiur left10:01
spool Mikachu: do you know if dwdiff is the best program for diffing latex? Any other suggestions?10:03
Mikachu no idea10:03
spool fair enough. You've all been very very helpful. Thanks so much.10:05
one last one :) -> what's the best way to do svn externals these days?10:06
RaceKondition left10:08
ramontayag joined10:12
ramontayag hi all. i'm learning rebase, and i have a conflict as expected. there's this one file that exists in both master and mynewbranch. i don't want to merge what master has into mynewbranch. how do i do this?10:13
spool oh well, anyways, thanks very much for your help10:14
parasti joined10:14
arafangion joined10:20
arafangion Hey guys... Many people here use git-p4? I've made a (tiny) change that makes it use _substantially_ less memory, though it does make it significantly slower.10:21
up_the_irons arafangion: heh, i think people want git to run fast :)10:21
arafangion up_the_irons, Yes... But people also like their programs to use less than 1GB of ram. ;)10:21
jammyd paging is uber slow, so if you've not got much ram, then that patch might well result in it being faster10:22
up_the_irons arafangion: oh man, it uses 1G? wow10:22
Flathead left10:22
uggabooh arafangion: what's the change?10:24
arafangion uggabooh, Shall I put the whole file onto rafb.net?10:24
rraasch left10:24
arafangion up_the_irons, For sure. :)10:24
torarne <3 rebase -i10:24
uggabooh arafangion: well, the diff if it's tiny10:25
arafangion uggabooh, Sure, let me download the original again... I made the changes at work, but emailed the result.10:26
uggabooh arafangion: well if it's a hassle, don't bother ... I'm just curious :)10:28
arafangion Nah, I should figure this thing out. ;) What diff options do you prefer?10:28
ramontayag hi all. i'm learning rebase, and i have a conflict as expected. there's this one file that exists in both master and mynewbranch. i don't want to merge that particular in master into mynewbranch. how do i do this?10:31
arafangion http://rafb.net/p/d3RpI632.html10:33
Mikachu arafangion: "git diff" ;)10:33
arafangion Obviously, you can see why that'd make the new version slower, but vastly more efficient. It's still trivial to optimise much further.10:33
Mikachu, Ha, I'm a newbie indeed! :) I didn't feel like doing a git checkout, though. :(10:34
Lash| joined10:34
arafangion Damn, how'd that tab get in there(!) Fixed on _my_ machine, now. :)10:36
elmex joined10:36
Tv ramontayag: git tracks the whole tree, not individual files10:39
ramontayag Tv, does this mean that i have to manually fix the conflict? i can't just say "ignore if there's a conflict", basically10:40
arafangion ramontayag, I think you could shelf it first.10:40
ramontayag shelf?10:40
Tv ramontayag: you can do *anything*, but just making the file look like on one of the branches, when you see the conflict, is the easy way10:41
ramontayag: but don't think that that wouldn't "merge" the changes to that file; it will just say that those changes merged in cause no change in the file10:41
bentob0x joined10:41
arafangion uggabooh, Any comments? Or did you seize up when you saw that it was python? :)10:42
ramontayag Tv sorry i don't understand10:43
Beket joined10:47
langenberg joined10:49
mbuf`` joined10:52
cilly left10:54
mediogre left10:55
clamothe_ joined10:56
clamothe left10:57
warlock_mza joined10:59
catbot__ left10:59
gbucher left11:00
mbuf`` left11:00
clamothe joined11:01
mbuf joined11:01
uggabooh arafangion: I am amazed that this saves a lot of memory11:01
arafangion_ joined11:01
mediogre joined11:02
GarethAdams I need to find out changes that have been made to the phrase "Pay recommendation" anywhere in my repository11:03
any file, any branch11:03
what's the easiest way to do it?11:03
doener git log -p -S'Pay recommendation' --all11:03
arafangion left11:03
GarethAdams aha, didn't spot -S11:04
:)11:04
koke left11:04
GarethAdams i'll work most of these options out one day11:04
arafangion_ ramontayag, Have you ever used a VCS system before?11:05
doener, Yikes, that's next to impossible with svn! :)11:05
ramontayag arafangion_: yes, svn, but learned only enough11:05
doener arafangion_: even if it would work with svn, it would probably take ages ;-)11:06
Mikachu but it wouldn't be nearly as cpu intensive for the client :P11:07
mbuf` left11:08
doener Mikachu: sure about that? My gut feeling is that the client would request a diff for each revision and do the search itself :-p11:08
arafangion_ doener, For each and every damn revision, indeed, and svn's even slower than cvs.11:10
spb the one advantage that cvs has over svn is that you can grep in the repository for things like that11:12
capisce_ left11:13
gretchen left11:13
uggabooh arafangion_: are arrays really that memory expensive in Python?11:14
clamothe_ left11:15
capisce joined11:15
xinming_ hmm, googled for 'convert git to svn', But all the results are 'convert svn to git', Anyone here can give the hint for converting git repo to svn please?11:17
Tv xinming_: svn can't express git history11:17
clamothe_ joined11:18
arafangion_ uggabooh, No, not at all - unless that array is a 400MB array, being converted to a 400MB string, which means that you're using 800MB of RAM, and you've _still_ got the original data!11:18
clamothe_ left11:18
crab joined11:19
xinming_ Tv: So, do you mean, If you switched to git, there is no way to go back? >_<11:19
EmilMedve joined11:19
arafangion_ xinming_, Why would you /want/ to go back?11:19
clamothe_ joined11:19
crab if i'm trying to sync one bare repository with another, then i need to do something like git reset --hard remotename/master, right?11:19
Tv xinming_: i mean svn is kinda dumb and limited by todays standards11:19
crab oh, no. reset --hard won't work in a bare repository.11:19
Tv crab: maybe you want git clone --mirror11:20
cilly joined11:21
crab Tv: no, this is a temporary thing.11:21
clamothe_ left11:21
crab Tv: (i cloned a repository, which was the master, but my repository is meant to replace it. but i have to pick up another batch of changes from it.)11:21
xinming_ arafangion_: 10 reasons, 1) no good gui support, 10) Not as easy as subversion.11:21
Tv: Yes, In fact, I really loved the git clone feature, which is really handy for making backup.11:22
and more consistent in some sense11:22
uggabooh arafangion_: fair enough. And no string pre-allocation in Python, to speed the thing up?11:23
crab Tv: any suggestions? basically i want to fast-forward foo to origin/foo for all my local branches and then git remote rm origin.11:23
w00t I agree with the lack of GUI support, but I think (after having used git for a few weeks) that it's not significantly harder than subversion, depending on your workflow11:23
mugdha1 joined11:23
w00t what sort of stuff have you found difficult?11:24
GarethAdams xinming_: actually, git-archive is better for creating snapshots11:24
mugdha1 What should one do when one gets a checksum mismatch error after issuing "git fsck --full"11:24
spb once you get your head around it it's no harder for the stuff svn does normally11:24
and significantly more capable11:24
w00t spb: noodle11:24
mugdha1 We're dealing with a 13 GiB repository here and don't want to lose data.11:24
Tv GarethAdams: snapshot != backup11:24
mugdha1 The repository has a lot of binary image data.11:24
xinming_ GarethAdams: I want the history also being cloned11:25
GarethAdams fair enough11:25
xinming_ So, there is no easy way to convert git repo to svn, right?11:25
Tv crab: just update the refs, then.. e.g. fetch with the right refspec will do that11:25
xinming_: that is in general impossible because of svn limitations11:25
parasti mugdha1: might be worth asking in the mailing list11:26
clamothe left11:26
Tv mugdha1: do you have a good clone of it somewhere?11:26
xinming_ Ok, then, I'll remove the history, and importing again in svn.11:26
_nn left11:26
Tv mugdha1: you can often restore the corrupted object(s) from another clone11:26
xinming_ Tv: thanks.11:26
mugdha1 Tv: Cloning it takes 3 hours. How does one restore corrupted objects from another clone?11:26
_nn joined11:26
Tv mugdha1: you can just plop them in .git/objects11:27
crab git fetch git://thingy +*:*?11:27
mugdha1 Tv: Alright.11:27
Tv crab: that would not download objects the local clone thinks it has11:27
crab Tv: that's ok, right?11:27
Tv no it's not11:27
he has corrupted objects he needs to replace with good copies11:28
mugdha1 Also, I'd like to know how best to use git for very large repositories. It doesn't seem to compress image data very well.11:28
crab Tv: oh, i'm talking about MY problem, not his. sorry. :-)11:28
Tv mugdha1: "don't" ;)11:28
mugdha1 Tv: Heh, as in?11:28
Tv crab: oh yeah, right -- i think that would be good, with sufficient quoting11:28
crab: you can make a git clone --mirror of a small repo and see how it configures it11:29
mugdha1: not designed for that11:29
chris2 left11:29
doener mugdha1: http://git.or.cz/gitwiki/GitFaq#head-ac11406480d09e2df98588e800e41b725660207411:29
mugdha1 Tv: I see. What would you suggest instead? We'd like history tracked11:29
crab +*:* is an invalid refspec. too bad.11:29
Tv crab: see what --mirror does11:30
crab: i think you're missing refs/heads/11:30
mugdha1: there aren't that many version control mechanisms aimed at multi-gigabyte repos, that's just not what source code usually is11:30
bcarlyon|laptop joined11:30
andreaja left11:30
Tv mugdha1: maybe you want the original plan 9 venti, or some hierarchic data management scheme from IBM you pay $$$ for?11:31
crab it does refs/*:refs/*11:31
thanks.11:31
ciaran left11:31
doener mugdha1: I think someone mentioned that Perforce is popular among game developers to handle large amounts of graphics stuff. But that's just what I heard...11:32
mugdha1 I hear that11:32
dwave joined11:32
powr-toc joined11:34
jmesnil left11:37
powr-toc I have two branches (a and b) with different histories, and I want to rebase a onto b. They should be able to merge ok as they dont share any paths. Is this possible?11:38
arafangion_ Perforce is _very_ fast.11:38
Especially if you have a nice massive server.11:38
Damn irritating to use at times, but it is certainly very fast, and has good merging (for a traditional VCS)11:38
random8r joined11:39
charon powr-toc: look in man git-rebase for --onto examples11:40
Gitbot powr-toc: the git-rebase manpage can be found at http://git.or.cz/man/git-rebase11:40
whee joined11:40
powr-toc charon: cheers, I thought that might do it...11:40
ciaran joined11:44
Beket- joined11:44
mugdha1 We're considering making submodules for sections of images according to category and separating them from the codebase. We're already neck deep into a lot of stuff and I don't think anybody would be prepared to move to another system from git.11:44
doener mugdha1: IIRC there was also some talk on the mailing list, about storing badly compressible stuff in files instead of packs, avoiding some overhead or so, I don't remember the details11:45
morphir left11:45
fujin Is there anyway to make my repo stop deleting empty directories?11:45
random8r yes put a text file in them. that's what I do.11:45
arafangion_ doener, How would you know if they're hard to compress, without compressing them?11:45
random8r then add that textfile to the .gitignore file11:46
doener arafangion_: I have no clue ;-) Maybe something like a gitattribute, like "*.png -compressible" :-)11:46
Tv random8r: or just version control it..11:46
Beket left11:47
powr-toc charon: Can you do it if they don't share history?11:47
Tv mugdha1: i manage my 5Mpix digicam pics in git, it's not too much of a pain with pics that size11:47
random8r tv what do you mean?11:48
mugdha1 Tv: sure. each one of our images are over 60M in size though.11:48
random8r tv git removes empty folders.11:48
Tv mugdha1: but i split them to multiple repos based on time, etc11:48
mugdha1 is even*11:48
Tv random8r: hence, you put a file in; but instead of .gitignoring it, just git add it..11:48
random8r tv git doesn't add it.11:48
tv coz it's empty.11:48
Tv random8r: are you sure?-)11:49
mugdha1 well, you add it after you've placed the text file in the empty directory11:49
random8r yeah, then you gitignore the folder11:49
DUH11:49
that's exactly what I just said.11:49
Tv random8r: you keep misunderstanding11:49
oh well11:49
mugdha1 just git add wherever/ *after* touch wherever/readme.text11:49
random8r so explain it11:49
bcarlyon|laptopBarryCarlyon11:49
doener touch directory/.gitignore; git add directory;11:50
random8r tv - git ignores empty folders, right...?11:50
mugdha1 yeah11:50
Tv random8r: but it's not empty if there's that text file in it11:50
mdalessio joined11:50
random8r I know.11:50
this is what I suggested... adding a file to the directory and then adding the folder.11:50
Tv random8r: you wanted to add the file or subdir to .gitignore, which is something totally different11:51
random8r NO11:51
I said add a text file to it11:51
then add the text file to .gitignore11:51
Tv oh man11:51
Tv gives up11:51
random8r <shrug> whatever.11:51
there's a folder let's call it hello11:52
jonkristian joined11:52
random8r it is empty11:52
so I add a file to it called empty_text_file.txt11:52
then I add the folder11:52
tud joined11:52
random8r (ie git add hello)11:52
then I edit my .gitignore file to include empty_text_file.txt11:52
bremner random8r: too late11:52
random8r so it doesn't track changes.11:52
fujin naw man.. you want to have the file in there, _not_ ignoredd11:53
so that it dont delete the dir11:53
Tv random8r: that's not the way git works11:53
random8r oh well it works like that for me11:53
<shrug> I must have a weird version or something11:53
fujin naw you're crazy11:53
Tv (14:52:27) random8r: so it doesn't track changes.11:53
random8r ah well. :)11:53
Tv that part is plain not true11:53
parasti random8r: when you added hello, you also added everything in that directory11:53
random8r yup.11:53
mjc joined11:53
random8r ah actually you're right I don't gitignore it.11:54
that's for when I want to not track certain files.11:54
like site-specific config files11:54
charon powr-toc: yes. think of rebase --onto C A B as taking all the patches in 'log A..B' and applying them on top of C11:55
random8r good stuff11:55
merlin83 joined11:55
Catfish_ joined11:56
tud Hello, I have a question about the workflow I could use with git.11:56
We have a group of developers working at customer site where they can access only http (no ftp/ssh/git/...)11:56
and other people working from office or home11:56
The customer would like to have the "official" repository at their site but form outside is unreachable11:56
How can we do? thanks11:56
mugdha1 left11:57
whee left11:58
whee joined11:58
arafangion_ tud, What's the problem?11:58
tud, Obviously, you're going to be much more secure if you allow ssh, but what's the problem?11:58
tud the problem is to have the work of everybody sincronized11:59
mugdha joined11:59
random8r no that's the solution.11:59
mugdha left11:59
deavid1 left11:59
crab can you push sanely to http: repositories now?11:59
tud the central repository is at customer site but from outside is not reachable12:00
Tv crab: it's probably the most buggy push mechanism, and will likely stay the most buggy one, because it's so rarely used12:00
crab *nod*12:00
arafangion_ tud, Have the central repository push its changes to an external repository.12:00
jonkristian This hook is invoked by git-commit. It takes no parameter <- what does that mean? that it takes no parameter?12:00
jmesnil joined12:00
arafangion_ (And also pull).12:00
Tv jonkristian: no command line args12:01
arafangion_: you mean fetch, as it'd be a bare repo12:01
jonkristian Tv: if i want to automaticly pull when a push has been made, where can i put that then?12:01
tud so we should have two central repositories, one (the official) to custome rsite and one for people working outside12:01
Tv jonkristian: post-update12:01
jonkristian Ok12:01
tud and somebody at customer site should take care of merge the two repositories, correct?12:02
Tv tud: if everyone can't access one place, what choice do you have?12:02
tud: the merge can happen at either end12:02
tud tv: this is my question :)12:02
arafangion_ Tv, I should probably shut up, as green as I am. :)12:02
marj left12:03
Catfish left12:04
jonkristian hmm, error: unable to create temporary sha1 filename ./objects/d5: File exists12:05
Tv jonkristian: check that you have read/write access12:06
smeevil joined12:06
smeevil hi all12:06
i was wondering if the following is possible : lets say i have a few commits in the master branch and i would like to branch off the last 3 commits from the master branch to a new branch... so that the master branch head is basically 3 commits back and the new branch has the latest 3 commits12:08
lorandi joined12:08
smeevil is that possible in any way ?12:08
jammyd branch, then reset master back 3 commits?12:09
smeevil jammyd: then what happens if you add a patch to the master branch ?12:09
retybok joined12:09
jonkristian Tv: now i get, 0cf4dd7..ccea67f master -> master12:10
fatal: Not a git repository: '.'12:10
retybok how do you find out the base directory of the git project you're in?12:10
smeevil jammyd: i never actually resetted to a previous commit , changed something and commited that, so no idea what happens then :D12:10
jonkristian also, if i do a git pull on my local computer, it doesn't understand it, i have to do git pull ssh://....path to repo12:10
isn't there a way to avoid this?12:11
Tv retybok: git rev-parse --show-cdup12:11
jonkristian: define a remote12:11
retybok Tv: thanks12:11
jammyd smeevil: by reseting you're forgetting the intermediate commits, aiui, so a new commit will be on top of [ what was previously ] the 4th commit back from master12:11
Tv smeevil: this may or may not help: http://eagain.net/articles/git-for-computer-scientists/12:12
smeevil jammyd: i see, thanks :D12:12
jonkristian Tv: i have [remote "origin"] url = ssh:// etc. in .git/config12:12
ssh:// path to that repo12:12
smeevil Tv: ty :) that will help12:13
Tv jonkristian: are you on a branch other than master when running that pull?12:13
jonkristian git branch shows master12:13
i havent really gotten around to play with branches yet12:13
Tv jonkristian: does "git pull origin" work?12:14
jonkristian ill try12:14
cbreak joined12:14
jonkristian no12:14
calin joined12:15
Tv jonkristian: so how does it fail, then?12:17
morphir joined12:17
Tv jonkristian: sounds like you have a different url in the config compared to typing it on the command line12:17
jonkristian hm12:18
reel_ left12:18
jonkristian it's the same, it fails with this, http://rafb.net/p/tXf3gD21.html12:19
iulian left12:19
Tv jonkristian: your config is missing [branch "master"]12:20
jonkristian and this is my config, http://rafb.net/p/L1LAdo76.html12:20
hmm12:21
Tv jonkristian: compare that to what git does automatically if you clone something12:21
jasam joined12:21
smeevil jammyd: that worked mighty fine :D thanks !12:22
xinming_ I noticed about that when we do commit, in git-log, the author and email is from .git/config, But using git within a centralized fasion, How to prevent the user "fake" the user and email info please?12:22
jonkristian should i add [branch "master"] to that file?12:22
jammyd smeevil: good good! :)12:22
mdalessio left12:23
cehteh xinming_: you cant do that in git itself, but you gpg sign commit messages, not very well supported tough12:23
one cant sign complete commit objects :/12:24
Tv xinming_: first, define fake12:24
xinming_: and think of me pushing changes made by you..12:24
diask joined12:24
jonkristian Tv: thanks, got it working12:25
i was missing the branch master stuff12:25
xinming_ Tv: eg, I wrote a .git/config with the the same user as another user which is also be able to push to the centralize repository,12:26
Tv xinming_: .git/config isn't pushed12:26
xinming_ Tv: I don't, But in log12:26
git log12:26
joshbuddy joined12:26
Tv xinming_: you mean you created a commit with someone else as author/committer?12:26
Mikachu xinming_: yes, you can fake commits12:26
Tv xinming_: as i said, think of me pushing a commit made by you12:26
xinming_: is that a fake or not?12:27
xinming_ Tv: It's not.12:27
Tv xinming_: so how do you know12:27
giom joined12:27
Tv xinming_: you can't use the pusher identity, then..12:27
bobmcw joined12:27
joshbuddy left12:28
Tv signed tags on every commit?12:28
Mikachu Tv: well, you could allow changing author but not committer, maybe12:28
Tv Mikachu: that doesn't help me push his (unedited) commits12:28
xinming_ Tv: But If someone want to "fake" as another user, eg, I don't like someone, I changed .git/config to the name of someone, and so does email, and then push.12:28
Mikachu Tv: if it's a centralized repo his commits are already in the centralized repo ;)12:29
cehteh you can impersonate anyone when doing commits .. git has no means of authentication commits12:29
Tv well signed tags..12:29
Mikachu you could check with a hook?12:29
(which would then disallow pushing someone elses commits)12:30
Tv Mikachu: you could prevent me pushing things made by others, yes; but i explicitly asked and he didn't consider that a fake12:30
xinming_ I mean, It's a bit like subversion, Eg, we can do ssh authentication. and the user is always identified through ssh.12:30
cehteh Mikachu: that woukld be ugly for merges12:30
Tv xinming_: svn is very different12:30
Mikachu cehteh: why? assuming the repo is centralized, the commits by other users are already in there12:30
cehteh mhm yes12:30
deavid joined12:30
Tv Mikachu: that's like "forced centralized" or something..12:31
cehteh would work12:31
Mikachu is speaking only theoretically, he doesn't think it's a good idea12:31
jogla How can i inspect changes *before* i update? I know i can use git fetch, but where would i find the changes then?12:31
wereHamster FETCH_HEAD12:31
Tv jogla: in remote branches12:31
xinming_ I'm still thinking on why this can't be easily done within git.12:31
Mikachu jogla: if you fetch a remote ,they're in what tv said :)12:31
irotas joined12:32
Mikachu xinming_: for the reasons given above12:32
jogla Ahh, thank you12:32
mbuf left12:32
Tv xinming_: two choices 1) forced centralization as Mikachu suggested (which is what svn has) 2) gpg signatures for every commit (easy way: signed tags; alternative: a signed chunk of data in commit message, including parents and tree sha)12:33
gebi are there any planes to support the author property of svn in git-svn?12:33
to set the author to the _real_ author not the authenticated user12:34
Tv huh12:34
gebi: svn only stores one string of author information, IIRC12:34
gbucher joined12:35
gebi Tv: yea, the problem is that git-svn is not able to set the author correct (it uses the authenticated user, default in svn)12:35
Tv gebi: authenticated user of what operation?12:35
gebi git svn dcommit12:36
e.g if i do a rebase in git, all commits belong to me after git svn dcommit (in the svn repo)12:36
Tv gebi: in general, you can't commit as other people in svn12:36
gebi you can ;)12:36
you just have to allow it in the hooks12:36
but yes, not per default12:37
Tv anyway, nobody on this channel has historically claimed to work on git-svn, really12:37
try the mailing list12:37
xinming_ Tv: thanks for the sollutions, Could you please explain the reason why this can't be done easily please? I still not understand. need a more detailed example.12:37
Tv xinming_: it can't be done easily because nobody has programmed it for you12:38
gebi Tv: ok thx :)12:38
juanjoc joined12:38
Mikachu well, normalperson is eric wong12:39
gebi ok12:44
we do svn:author and svn:date adjustion for a better svn history here and no problems so far12:44
though wrong svn:date could be problematic12:45
ebel joined12:47
Yuuhi joined12:50
tommorris joined12:50
koke joined12:50
johnw joined12:51
jeukku left12:52
pgokeeffe_ left12:52
naoshige joined12:52
arafangion_ gebi, You could ask them to put such info into the commit messages instead?12:52
naoshige how was it i forced a git pull?12:52
i get "needs update" on almost all files in this public repo12:53
i know they need updates thats why i wanna pull but12:53
arafangion_ gebi, And I think svn allows hooks to allow you to change the commit as it gets made, nasty things happen when you do that, but I think you can change the commit message itself (ie, the log) fine without any issues.12:53
Guest84351 joined12:55
wereHamster naoshige: needs update usually means that you have a dirty working tree. So you first have to commit your changes or git-stash them12:55
arafangion_ (Reason nasty things can happen is because svn clients expect that the files they commit are the same as what the commit is, if that makes sense, ie, they assume that the client doesn't automagically change things on the fly)12:55
Tv naoshige: "public repo"? http://git.or.cz/gitwiki/GitFaq#head-b96f48bc9c925074be9f95c0fce69bcece5f6e7312:55
naoshige wereHamster: but i haven't touched the repo since i first cloned it12:56
nevrmind ill just clone it again12:59
mw|out joined12:59
naoshige thanks for the link Tv12:59
gebi arafangion_: would be an idea, but no tool works the way it should with this in svn (thats why i mess with propset --revprov svn:author)12:59
arafangion_ gebi, I'm talking about server-side svn hooks.13:00
kef joined13:00
naoshige left13:02
tud left13:02
mithraic joined13:03
arafangion_ gebi, The best solution is to give each user their own account.13:03
gebi arafangion_: you mean something like --add-author-from from git-svn or adjusting the svn:author property automatically on the svn server?13:03
arafangion_: thats not the problem13:03
if i do a rebase in git and after that do a git svn dcommit the author and date is wrong (which i fix with some crude scripting)13:04
ciaran_ joined13:04
kukks joined13:05
arafangion_ gebi, Sounds like you've got a pretty good handle on things.13:05
mbuf joined13:06
etgryphon joined13:07
gebi arafangion_: the setup just cries for pain, 2 svn repositories (one internal and one for external devs) synched with git-svn ;), with more and more git devs13:07
kbingham left13:07
arafangion_ gebi, Why don't you have a human 'merge master'?13:08
Tv gebi: most git-svn users commit their own stuff to git-svn, not others; i guess that's the source of your pain13:08
arafangion_ gebi, Who's daily task is to merge the two svn repos, in addition to his workload.13:08
mw|outmw13:08
Tv gebi: two svn repos sounds a recipe for pain..13:09
gebi arafangion_: the merge "master" does not know well about git and is using just svn13:09
Tv: might be, yes :)13:09
Tv: the problem is that there is a master branch in git too which has to be exported to svn (and those branch has commits from all the git users)13:10
unavoidable to commit others work as not all users have commit access to the right (internal) repo13:11
mithraic left13:11
arafangion_ gebi, Is it not possible to remove one of those svn servers, so that there is truely only one svn server, and allow people to use git as an "optimisation"?13:11
gebi arafangion_: no as the internal network has to be "certified"13:12
you really don't want every student in the internal researcher network ;)13:12
Tv gebi: sounds like death by middle management13:12
arafangion_ gebi, Perhaps not, but who is going to *trust* those student repos? ;)13:13
_VVSiz_VVSiz13:13
arafangion_ gebi, git lends itself rather well to such hierachial systems.13:13
gebi Tv: yea :)13:13
arafangion_: i know13:13
JimmyB_ joined13:15
mithraic joined13:15
gebi arafangion_: but you can't force git on all those users (as it's a quite old project)13:15
krh joined13:15
ciaran left13:15
EmilMedve left13:16
langenberg left13:16
arafangion_ gebi, You can force it on the students, though. ;)13:16
gebi, The project might be old, but very few of your users are old timers, I'd bet. ;)13:17
jeukku joined13:17
langenberg joined13:17
Tv hey you could make them use git-cvsserver ;)13:18
johnw left13:18
joshbuddy joined13:18
gebi Tv: lol yea :), we have even a few ms source "safe" users :D13:21
arafangion_: the internal users are not all students though ;)13:21
jeukku left13:25
vbabiy joined13:26
arafangion_ gebi, Perhaps the main thing that git's missing is to have a simplified GUI that while effectively cripples git, at least lets you work in a "classic" svn-like fashion.13:27
jeukku joined13:27
arafangion_ gebi, ie, no (user-visible) local branching, simple merging, that kind of thing.13:28
gebi thats why so many userse choose mercurial13:28
reithi left13:29
Zarin joined13:29
arafangion_ gebi, Why didn't you?13:30
andrewtaylor_ joined13:30
jeukku left13:30
gebi i don't want another constraint scm13:30
softdrink joined13:31
tarbo joined13:31
andrewtaylor_ Hi, i'm just starting with git, I need to pull a branch from an existing local repository to be a master on a new local repository. Can anyone give me some pointers?13:32
gebi arafangion_: every hg user i know of which doesn't use it as a better backup uses git now, so the choise was quite clear ;)13:32
arafangion_ is planning on using git as a better backup... once his server gets back online. :)13:32
deavid left13:33
Sho_ left13:33
gebi arafangion_: heh13:33
arafangion_ G'night. :)13:33
andrewtaylor_ is it git pull /home/bob/myrepo master ?13:34
gebi andrewtaylor_: git init; git fetch ../path_from_other_repo master:master13:34
arafangion_ gebi, Used to use svn for that. :)13:34
andrewtaylor_ thanks, what's the difference between pull / fetch / clone ?13:34
arafangion_ gebi, And svn's almost ideally suited for that, if one doesn't need the RCS capabilities...13:34
doener clone ~= init + fetch + checkout13:34
pull = fetch + merge13:34
gebi andrewtaylor_: pull is fetch+merge, fetch is fetch and clone is init+fetch+(checkout)13:34
arafangion_: omg, no13:35
andrewtaylor_ gebi: perfect sense :)13:35
gebi fetch transferes objects and refs from another repository to your current one13:35
arafangion_ gebi, Well, once you DO need RCS capabililties... You need to read between my words. ;)13:35
mithro joined13:36
mithraic left13:36
gebi arafangion_: nope, ways before13:36
svn is way too fragil, slow and has no automatic backup13:37
arafangion_ gebi, If you have two machines, you do have a backup, though not with any history, and speed has improved heaps, though not up to git standards.13:37
softdrink left13:37
gebi just got a svn error yesterday (somethin like checksum mismatch, blablabla) just because one user comitted an ntfs alternate data stream13:38
softdrink joined13:38
arafangion_ gebi, It's especially fragile if you still use the bdb system.13:38
gebi arafangion_: a "backup" without the ability to restore the hole thing is pointless13:39
arafangion_ gebi, Which brings you back to this whole "RCS" thing I mentioned. ;)13:39
gebi ;)13:39
arafangion_ gebi, And you can restore the "whole" thing, just not any past revision prior. ;) And many traditional backup systems are the same.13:40
G'night.13:40
cilly left13:40
gebi n813:40
arafangion_ left13:40
mithraic joined13:43
gzy joined13:45
cannonball joined13:46
jas4711 joined13:48
grahal joined13:48
Beket joined13:53
EmilMedve joined13:55
ph^ left13:56
jerbear joined13:57
mithraic left13:58
johnw joined14:00
johnw left14:00
jackdempsey_ left14:00
johnw joined14:00
spearce joined14:01
random8r left14:02
namenlos left14:04
namenlos joined14:05
deavid joined14:08
calin left14:10
Beket- left14:11
jonkristian files created in .git/ are they all 644 and dirs 755? except for the stuff in hooks/14:12
andrewtaylor_ left14:12
RandalSchwartz git doesn't do metadata14:13
that's for your installer14:13
Tv jonkristian: depends14:13
davidfetter waves to Tv14:13
RandalSchwartz Oh oh. in .git14:13
sorry14:13
not in "git" :)14:14
foca joined14:14
RandalSchwartz stares at diet coke and yells "work! work!"14:14
Mikachu jonkristian: objects/* is 444 i think14:14
jonkristian ouch, then i messed up14:14
Mikachu well, maybe not the info/packs file and some other things i didn't think of14:14
davidfetter queues up "car wash"14:14
not-xjjk left14:15
jonkristian im having trouble seeing a solution, people on my group can't push, and using this example, http://www.linuxworld.com/community/?q=node/3057 , I can't think of a way to maintain permissions on a webfolder.14:16
bobmcw left14:16
olauzon joined14:16
Tv jonkristian: "shared"..14:17
jonkristian shared14:17
Tv jonkristian: or gitosis14:17
jonkristian oh, shared14:17
hm14:17
zachinglis joined14:18
smeevil left14:18
retybok left14:18
razrazZz14:18
razZzraz14:18
jonkristian so i do git --shared=groupname inside the repository and chown -R root.groupname or something?14:19
gzy left14:25
tommorris left14:27
blowery left14:28
blowery_ joined14:28
aroben joined14:28
blowery joined14:28
namenlos left14:28
namenlos joined14:29
ijcd joined14:29
alb joined14:29
nbrosnahan left14:29
gebi Tv: i teached gitosis to initialise all repositories from a configurable custom template directory: http://git.einsteinmg.dyndns.org/?p=own/gitosis.git;a=log;h=refs/heads/t/templates14:36
mjc yarr14:36
schmir joined14:37
mjcthe_good_pirate_14:37
the_good_pirate_ Bleh14:37
the_good_pirate_pirate_mjc_yarr14:37
schmir hi all. how is the file called where I can artificially modify the revision graph?14:37
pirate_mjc_yarr wrong room :p14:37
My bad14:37
krh schmir: are you thinking of git rebase -i perhaps?14:38
schmir krh: no14:38
doener schmir: grafts14:38
xinming_ Is there any other way to update a bare repository except using git push.14:38
schmir doener: yes, thanks14:38
krh xinming_: something like GIT_DIR=repo.git git fetch14:39
xinming_ krh: Is it the same as we do on the client using 'git push' ?14:40
krh xinming_: no, it's how you would fetch remote branches into a bare git repo14:41
tvachon joined14:42
tvachon left14:42
iulian joined14:43
ijcd left14:44
earcar joined14:44
mbuf left14:45
arun left14:46
xinming_ krh: How could I also fetch the same effect as doing 'git push' using git fetch please?14:47
krh xinming_: you should be able to say GIT_DIR=local-repo.git git fetch git://remote.org/repo.git master:master14:49
to fetch the master branch from the remote repo into you local bare repot14:49
xinming_ krh: thanks really14:51
krh xinming_: no problem14:51
albalbertito14:51
deskin joined14:55
stouset joined14:57
earcar left14:58
johan-s left14:59
Beket left14:59
bdiego joined15:02
camwest joined15:03
camwest left15:04
bobmcw joined15:05
priidu left15:06
jackdempsey joined15:06
jpeeler joined15:07
ramontayag_ joined15:07
schmir left15:07
sveajobb joined15:08
jackdempsey left15:08
sveajobb is there a way to store a view in gitk ? I'm interested in looking at all available branches15:08
jackdempsey joined15:08
uggabooh left15:08
charon you could make an alias that calls 'gitk --branches'15:10
ramontayag left15:11
ramontayag_ramontayag15:11
ijcd joined15:12
selckin joined15:13
mediogre left15:13
sveajobb charon, aah, excellent ! thanks :)15:13
jogla When i update a remote branch, i can see with what changes have been made in that branch "since i last updated it"?15:15
s/i can see/how can i see/15:15
deskin jogla: git-fetch tells you the commit ids from..to for all the remote branches; e.g. if it prints '0123456..9abcdef foo -> bar', just do 'git-log 0123456..9abcdef'15:18
flaguy left15:18
deskin or git-diff, git-shortlog, depending on what you want to know15:18
ramontayag left15:19
advany joined15:21
bobmcw left15:22
jogla deskin: Thank you15:25
Hobbes left15:27
Hobbes joined15:27
svend joined15:27
ijcd left15:29
ijcd joined15:30
hurikhan77 joined15:30
koke left15:31
kumbayo joined15:32
kanru left15:33
kowey joined15:38
LostInTheWorld joined15:38
jaalto joined15:39
jaalto I did commit. Now I want to move it to separate branch, and remove it form current. What's the procedure?15:39
I could take diff HEAD~1, save it, branch, patch. Then go back and reset --hard to HEAD~1. But is there anything better?15:40
vmiklos git branch foo HEAD; git reset --hard HEAD~115:41
neurodamage left15:41
hurikhan|Work left15:42
jaalto vmiklos: Uhm, of course. How simple.15:42
vmiklos actually you can use HEAD^ instead of HEAD~1 as well :)15:42
jaalto vmiklos: thanks15:42
LiamH joined15:42
jaalto vmiklos: It's stylistic issue, I hate ^, whereas HEAD~N is logical, when N can be increased as will15:43
ijcd left15:43
jaalto at will15:43
vmiklos k15:43
ijcd joined15:43
jonkristian If i set rules in my remote .zshrc regarding umask, will those rules be used when i do a git push to the remote location?15:46
tsb joined15:47
vuf jaalto: maybe HEAD~ for HEAD~1 is not so bad?15:47
tsb I have a rep in /etc. I want to add X11/xorg.conf, but nothing else in X11, how would I do that? git add X11/xorg.conf *seems* to work, but when I do git commit -a there's nothing to commit15:47
deavid left15:48
TML joined15:49
mjansen joined15:50
TML Shouldn't "git prune" clean up all unreachable objects?15:50
jaalto tsb: git status?15:50
tsb: ... after add. Maybe file is ignored by .gitignore15:51
mjansen I just fetched with "git svn fetch" and now try to rebase with "git rebase git-svn". That fails with "could not detach HEAD"15:51
danten joined15:51
mjansen but it won't tell me why.15:51
vuf TML: seems like it15:51
mjansen git -v rebase ... doesn't help either15:51
TML mjansen: "git svn rebase"?15:52
mjansen sorry ... forget that svn part.15:52
same result15:53
doener mjansen: probably an untracked file would get overwritten or something like that15:53
mjansen: IIRC git 1.6.0 and newer have a more verbose output15:54
mjansen when trying to checkout git-svn i get a warning for such a untracked file15:54
doener mjansen: try "git clean -nx" to see all untracked and ignored files15:54
that's it then15:54
get rid of the offending file15:54
Voker57 joined15:55
mjansen so a newer version will tell me what is wrong?15:55
i have 1.5.615:55
sgrimm left15:55
doener the "checkout" part of "git svn rebase" is silenced in older versions15:55
Voker57 can i do something like `svn export`, to copy all tracked files somewhere?15:55
doener it's the file that the checkout command complained about15:55
TML vuf: That's sort of what I thought, too; but after a "git prune" and "git repack -a -d" I'm still seeing unreachable trees, blobs, and commits when I "git fsck --unreachable HEAD $(cat .git/refs/heads/*)"15:55
doener Voker57: git archive15:55
Voker57 doener: thanks! :)15:56
vuf TML: are they perhaps reachable from your reflog?15:56
TML vuf: I don't even know how to find that out, but it's something for me to read up on at least. Thanks. :)15:57
doener TML: try "git repack -a -d -f" _or_ "git repack -A -d -f" and then "git prune"15:57
archis left15:57
doener TML: one of those should work if the objects are truly unreachable through any ref or the reflog15:57
mjansen doener, thx15:58
TML doener: Ah - "repack -A -d -f" seems to have cleaned it, thank you.15:58
doener TML: I think the "-a -d -f" version should be enough, but I've seen at least one case where the other, together with git prune was required15:58
deskin left15:59
TML I only wanted to make sure those were all *really* removed because somewhere between git and svn, we lost an entire svn commit last night - repo changes from 11269 to 11271, and we can't see the changes that were supposed to be in 1127016:00
Just trying to remove all variables :)16:00
kef left16:03
kef joined16:05
bts- joined16:05
perezd88 joined16:06
ShadeHawk joined16:06
ShadeHawk Is logo used on http://git.or.cz/gitwiki/EclipsePlugin official JGit/EGit logo?16:07
bobmcw joined16:07
ShadeHawk Hmmm... it looks like it is, as http://www.jgit.org/ uses it too16:08
Does StGit have logo or icon?16:11
Or Guilt, or TopGit?16:12
nud_ left16:13
ijcd left16:15
advany left16:18
mjansen left16:20
capisce_ joined16:22
fanthomas joined16:22
statim left16:22
kbingham joined16:22
statim joined16:22
HobbesGuest5871216:23
Hobbes`` joined16:23
koke joined16:24
sgrimm joined16:25
carrus85 joined16:26
Ryback_ joined16:27
tritz left16:30
svend left16:31
ph^_ph^16:36
jmesnil left16:37
jmesnil joined16:37
pt joined16:38
Guest58712 left16:38
ptah joined16:38
ptah left16:38
ebel left16:39
Hobbes``Hobbes16:39
ToxicFrog left16:40
ToxicFrog joined16:40
ToxicFrog left16:40
ShadeHawk Hmmmm... it is silent here...16:41
ToxicFrog joined16:42
capisce left16:42
rmh3093 left16:42
vuf bangs on stuff to make so noise16:42
stousetstouset|away16:44
gbucher left16:46
schacon joined16:47
koke left16:48
hurikhan77 left16:48
kroimon joined16:51
christophsturm left16:51
kroimon hey all16:51
i just wanted to know if there's a git version i can use on suse 9.3 since i have a production server with this distro and dont want to update all requirements to install the latest version...16:52
drizzd kroimon: I'm not aware of any new requirements introduced by the latest version16:54
jonkristian is there anything i need to enable to get the post-update hook going, i did a chmod +x on it, but it still won't do anything.16:55
Tv jonkristian: what do you think the default post-update hook does?16:57
that is, are you *sure* it's not working ;)16:57
crabjustacrab16:57
MaddHatter left16:58
jonkristian it was working, but then i went ahead and created a new repository and just copied over the post-update i was using.16:58
ijcd joined16:59
olauzon left16:59
nbrosnahan joined17:01
drizzd maybe it doesn't run if all refs are already up-to-date?17:01
jonkristian yeah, im changing a file locally, doing a commit and then a push17:02
drizzd and you're aware of the fact that the post-update hook has to reside on the remote side17:02
jonkristian the change isn't updated in that folder, im using this, http://www.linuxworld.com/community/?q=node/305717:03
drizzd: yes, it's in my repository hooks folder on the server17:03
schacon left17:03
jonkristian but it was working before, except that i threw out some permission errors which i have fixed since17:04
Tv jonkristian: "it's not working" is not very useful for debugging17:04
vuf jonkristian: you can stuff in "echo test" to make sure that it is running at all17:04
drizzd and you also updated WORKDIR, of course17:04
amerine_ joined17:04
mithraic joined17:05
amerine_ left17:05
amerine joined17:06
drizzd I wonder if there's a better way to get the working directory17:06
jonkristian yeah, sorry, ill try that17:06
mw-home joined17:08
MaddHatter joined17:08
jonkristian test is echo'ed during push, so it is running17:08
vuf drizzd: "unset GIT_DIR ; cd repo" is maybe cleaner17:08
kroimon left17:09
kroimon joined17:09
mw-home When I clone a branch with git "checkout -b newbranch", does my newbranch get the same origin as its parent?17:09
drizzd vuf: so there's no way to tell where "repo" actually is I gather?17:09
(from inside repo)17:09
vuf drizzd: or not, I didn't notice the update-server-info17:09
drizzd: I think the hook tries to update one repo in the hook of a different repo17:10
drizzd I think it's for pushing into a non-bare repo17:10
Tv mw-home: branches have no parents17:10
jonkristian ah17:11
Tv mw-home: "git checkout -b newbranch" creates a new branch pointing to current commit (aka HEAD)17:11
vuf drizzd: in that case, I use "cd .. ; unset GIT_DIR" with success ... the hook starts out in .git with GIT_DIR="."17:11
ShadeHawk mw-home: "git checkout -b newbranch" starts 'newbranch' at current HEAD17:11
Tv mw-home: http://eagain.net/articles/git-for-computer-scientists/17:11
jonkristian drizzd: my old repo had, project.git/.git/ but new one is bare, project.git/ could that be it then?17:11
drizzd vuf: I see. jonkristian: maybe you should use what vuf suggested instead of hardcoding the working directory path17:12
vuf jonkristian: if it is bare, there is no work area to update17:12
drizzd jonkristian: if it's bare you don't need the hook at all17:12
ShadeHawk git rev-parse --show-prefix (or something like that)?17:12
qrush joined17:12
drizzd ShadeHawk: doesn't work from inside .git17:12
mw-home OK, after making my branch, I did "git push origin newbranch". Then I did git branch -r. I don't see newbranch in the origin though.17:12
never mind17:13
jonkristian drizzd: don't need the hook? how can i else be updating the branch in th webfolder on push?17:13
mw-home I do see it17:13
now, when somebody else also already cloned my origin, how do I say, hey, now retrieve in the newbranch on origin?17:13
Tv mw-home: git fetch17:14
ShadeHawk drizzd: git rev-parse --git-dir (or man git-rev-parse in general)17:14
Gitbot drizzd: the git-rev-parse manpage can be found at http://git.or.cz/man/git-rev-parse17:14
drizzd jonkristian: git reset only works from within a git directory17:14
jonkristian: s/directory/repository17:14
mw-home Tv: ok, I also did git pull origin newbranch. That works too, right?17:14
namenlos left17:14
ijcd_ joined17:14
mw needs to configure his client to not match "mw-home" :S17:14
mw-homenotmw17:15
Tv mw-home: for some definition of works; it does something else, which might or might not match what you wanted17:15
mw: i usually advise people to avoid "git pull foo bar"17:15
schacon joined17:15
Tv mw: because many people don't realize that syntax does a merge, too17:15
notmw Tv: it seems to have retrieved the edits I made while in my newbranch , and it applied them in there.17:15
jonkristian ok, so maybe i should go back to bare none bare17:15
drizzd jonkristian: but you can specify the working directory somehow, not sure if that works with a bare repo though17:16
mw Tv: i realize it, but maybe notmw doesn't!17:16
Tv mw: exactly. use git fetch17:16
notmw Tv: you like git fetch instead? That downloads the code, but keeps it somewhere else?17:16
Tv puts it in remote branches17:16
notmw Tv: I changed my nick a minute ago from mw-home to notmw.17:16
Tv sounds like somebody needs to (re)read the tutorial17:17
notmw Tv: yeah, I've read it, but I think I need to re-read it. thanks for the hel.17:17
p17:17
.17:17
jatt joined17:17
Tv i can give hell too17:17
jonkristian drizzd: yeah, though it's a bit over my head:D17:18
bobesponja joined17:18
rmh3093 joined17:18
drizzd jonkristian: same here, sorry17:18
jatt hi, I do have a big git repository and now I want to clone (part of it) in a machine of my university which has a pretty small quota. How do I clone for example a subdirectory from my master repository?17:18
drizzd jonkristian: you could simply export the repo using 'git archive', but that's probably slower than git reset17:19
narflekw joined17:19
gittish joined17:19
lolage0 joined17:19
jmesnil left17:20
jonkristian maybe GIT_WORK_TREE17:21
eikonos joined17:21
ijcd left17:21
drizzd jonkristian: you can try it. If git barks about the fact that it's bare, change the config17:22
vuf jonkristian: I think the bottom line is that the linuxworld.com blog is wrongish, which is confusing you17:22
jonkristian: the eikke.com blog that it references includes a git-pull, which makes more sense17:23
jonkristian ill look at it:)17:23
that's actually what i tried to do myself, before i came across that article17:24
powr-toc left17:24
harinath left17:24
gittish left17:24
charon jatt: you can't. to save space on the object storage, try clone --depth. if you really must have a subtree checkout (not clone!), you could try duy's patches on the list, search for "narrow/partial/sparse checkout", but you'll have to compile git yourself.17:24
rmh3093_ joined17:24
hiffy left17:25
vuf jonkristian: you need a non-bare repo somehow, though the article suggests two repos, one bare and one not17:25
drizzd jonkristian: yes, vuf is right. git pull is a much better solution17:25
Tv jatt: git really is built on the idea of having everything always handy, you may need to find a better box to work on17:26
drizzd you can even use clone -s if you're concerned about space17:26
Fullmoon joined17:26
jonkristian vuf: drizzd thanks guys, i'll take a deeeeep look into it, and hopefully get it working:)17:27
vuf jonkristian: my full script is "cd .. ; unset GIT_DIR ; git reset --hard HEAD" (for a non-bare repo that I push to)17:28
drizzd actually, what's the downside of using clone -l vs. clone -s?17:28
narflekw can anyone confirm or deny that hooks work on remote git repos accessed over http?17:28
i can't seem to get mine to run after a `git push`17:29
drizzd narflekw: hooks do not work over http (currently)17:29
narflekw ahhh ok17:29
charon drizzd: afaics from the descriptions, -s saves a few inodes and can cross FS boundaries, but is dangerous17:30
narflekw so i need to set git up to run as a daemon yes?17:30
deavid joined17:30
jonkristian YEES, it's working:D17:30
thanks guys, i felt so lost before.17:30
stouset|awaystouset17:30
pmf joined17:31
vuf drizzd: I think that "git gc" in one repo could break the hardlinks, rigth?17:31
drizzd charon: right. forgot about that. I guess it's also useful in the context of --reference.17:31
well, hardlinks are safe, alternates are not17:32
a hardlinked file will note be deleted until all links are gone17:32
ShadeHawk charon, jatt: partial checkout would save only space taken by checkout; use shallow clone, or alternates with reference repository outside quota (local disk, or USB key, or CD-ROM,...)17:32
vuf also, I am not sure whether fetch will hardlink ?17:32
narflekw drizzd: thx for the heads up, that was frustrating17:32
RandalSchwartz and open references17:33
ShadeHawk there is git-relink (man git-relink)17:33
Gitbot ShadeHawk: the git-relink manpage can be found at http://git.or.cz/man/git-relink17:33
drizzd narflekw: yeah, a new http protocol which supports hooks is in the works17:33
ShadeHawk left17:33
jatt thanks for your suggestions. It seems it needs a bit of work... If it gets too complicated for me then I will need to reduce the size of my repository.17:33
pmf left17:34
drizzd narflekw: over WebDAV it's not possible to execute hooks, obviously17:34
joevandyk left17:35
drizzd vuf: good question17:35
mcella left17:36
drizzd vuf: OTOH, it probably uses the same transport code 'git clone' does17:36
tritz joined17:36
priidu joined17:36
kroimon left17:37
rmh3093 left17:37
narflekw drizzd: yeah i was wondering how that would work, but i couldn't find anything documented about how it doesn't work yet17:37
kbingham left17:37
drizzd I don't want to start a "how secure are sha1s" discussion. But I've been wondering how git would actually deal with a sha1 collision. It would detect different object sizes at least, right?17:38
ThaDon Allo, is it possible for git to clone off an http location protected by basic auth (i.e. .htaccess)? I'm getting a 401 (rightly) but no prompts for username/password. Is it supported?17:38
niki joined17:38
segher joined17:38
Tv drizzd: don't think so17:38
jatt If I create a shallow clone (with --depth 1) will I be able to pull changes from the master repository?17:38
drizzd ThaDon: man netrc17:39
charon left17:39
sveajobb left17:39
drizzd Tv: true... it would have to read the object for that, which would be slow.17:39
raz hmm i'm still confused by "git mergetool". why on earth does it give me 3 files: file.LOCAL, file and file.REMOTE. i'm fine with file.LOCAL and file.REMOTE, but the middle on ("file") is a combination of the two, garbled with merge markers. how is that helpful?17:41
prof_freud joined17:41
Tv raz: because only some of the things conflicted; anything that managed to automerge is automerged17:41
vuf drizzd: if a collision happens by accident, that would be during an add ... my guess is that git would then just reuse the wrong file, seeing that it knows the sha-1 already17:42
Tv raz: besides, the middle file is the output, so you need that there17:42
kbingham joined17:42
drizzd vuf: makes sense17:44
raz Tv, yes but why is the middle file not blank by default? at least xxdiff and meld seem to be pretty clueless about merge-markers and give me a less-than-helpful view like this: http://mbox.bz/s/ss34.jpg17:44
sgrimm left17:44
sgrimm joined17:44
Tv raz: if it was blank, you'd need to merge everything manually17:44
hiffy joined17:45
Tv raz: in the real world, only a small fraction of the changes cause conflicts17:45
xinming_ anyone here can tell me why in 1.6.1 series git, the git-shell will be removed in /usr/bin/ please?17:45
KevBurnsJr joined17:45
KevBurnsJr Best git client for mac?17:45
Tv xinming_: mistake17:45
xinming_ for now, If we want to setup the restricted shell, we have to use /usr/libexec/git-core/git-shell thing17:45
which isn't a natural thing to me17:46
Tv: do you mean it'll be corrected in newer release?17:46
raz Tv, yes but when large parts of the file are identical, isn't it just a matter of choosing this large hunk from either left or right? in contrast with the merge-marker file in the middle there is sometimes no straightforward way to replace the garbled parts with the left/right version in the correct order17:46
ph^ left17:46
Tv xinming_: was already17:46
ThaDon drizzd: thanks dude17:46
joydivider joined17:46
ThaDon drizzd: got me past the 401, now it complains with "info/refs not found: did you run git update-server-info on the server?" however I did run that command17:47
raz Tv, i would understand git mergetool put the common ancestor in the middle. but this garbled file in the middle makes no sense to me.17:47
+if17:47
drizzd ThaDon: man git-update-server-info17:47
ThaDon drizzd: might be an apache setting17:47
Gitbot ThaDon: the git-update-server-info manpage can be found at http://git.or.cz/man/git-update-server-info17:47
Tv raz: if you want that, erasing the middle file is a few keypresses away, and you can even automate it if you want17:47
ThaDon drizzd: yeah, i ran it, I read it, etc...17:47
drizzd ThaDon: maybe you got the url wrong?17:47
xinming_ ha, thanks, After tried and googled, It always not worked as expected. and at last find we lacks git-shell. >_<17:47
Tv raz: just saying that doesn't sound helpful in non-pathological cases, to me17:47
drizzd does the file info/refs exist in your repo?17:48
vuf raz: you can define a mergetool that uses $BASE for the middle, I guess17:48
raz Tv, well yes, figured that out. just scratching my head about the default. why is the default not to put the ancestor in the middle? that seems much more helpful, especially in non-pathological cases?17:48
loiseau left17:48
vuf Tv: one could imagine a mergetool that also has auto-merge capability17:48
drizzd ThaDon: you can also test by entering the url in your browser17:48
raz Tv, or, in other words, how is putting the mergemarker-version in the middle helpful at all?17:48
Tv raz: *shrug* current works very well for me, in the real world17:48
raz hmm well ok17:49
maybe i'll grasp it when i do some more real-world merges17:49
ph^ joined17:49
drizzd raz: I don't think mergetool is very popular17:50
ThaDon drizzd: yeah, tested with the browser and see everything fine :(17:50
ThaDon confused17:50
vuf raz: I like a view like this better, http://www.scootersoftware.com/moreinfo.php?zz=screenshot&shot=TextMerge17:50
kowey left17:50
drizzd ThaDon: can you try the same url (to info/refs) with curl?17:50
raz drizzd, what do you recommend instead?17:50
ThaDon drizzd: Im supplying git clone with the url to the parent directory of .git17:51
drizzd ThaDon: I think that's fine17:51
raz: I use git diff and an editor17:51
raz vuf, hmm yea that looks like what i would have expected from merge-tool (ancestor in the middle or left, right?)17:51
drizzd, yea well, i guess that becomes cumbersome with more complicated merges17:53
ponch84 joined17:53
vuf raz: ancestor in the middle is what it says in the caption (I didn't get it set up myself, yet)17:53
drizzd ThaDon: actually, you may have to append .git. Could you try that?17:53
Tv huggs wiggle for quick kludging annoying rejects... wiggle does the editing, diff & unit tests ensure sanity17:54
ThaDon drizzd: interesting, yes that was it17:54
raz vuf, well, git-mergetool is just a shell script. i guess some patching is due. baffles me a bit since git kinda advertises its superior merge-facilities everywhere :\17:54
Tv that scooter thing looks way too visually busy to be desirable to me17:54
looks like a typical windows ide thingie ;)17:54
drizzd ThaDon: hmm, that's a little stupid. I guess you're the first to try cloning a non-bare repo over http ;-)17:54
ThaDon drizzd: so do you only have to do that when you clone from http? I don't seem to have to do that when cloning from ssh or a mounted filesystem17:54
drizzd ThaDon: exactly17:54
ThaDon drizzd: lol, no no there *has* to be more idiots out there than just me17:55
vuf Tv: it is, but it beats any unix compare tool by miles17:55
ponch84 hi all, anybody using hg-fast-export knows how to track hg HEAD on a specified branch and not on master?17:55
raz vuf, doesn't seem to work on my 64bit gentoo :(17:55
drizzd ThaDon: I'll see if that easy to fix and send a patch17:56
raz i generally like meld a lot but it has some annoying bugs (undo doesn't always really undo)17:56
vuf raz: I think the advertised superiority is in auto-merging more than the manual conflict resolution17:56
raz that's the last thing you want in a merge tool17:56
catphish joined17:56
ThaDon drizzd++17:56
markkalderon joined17:56
glommer guys, I have this repo, say, kvm-userspace.git. For those who don't know, it has a local copy of qemu inside a qemu/ directory. Now, I'd like to merge a branch of mine of qemu into it. Problem is that for that to happen, I'd need to have the "qemu/" path prepended to everything that comes to that repo. How can I do that ?17:56
vuf raz: I got it running in 64 bit Ubuntu, now I forgot the details :-(17:57
capisce_ left17:58
MaddHatter glommer: git filter-branch, I think17:59
capisce joined17:59
glommer MaddHatter, will take a look. Thank you.17:59
catphish quick question: when using git over ssh, how do you inject plaintext errors back to the client? ie. "you do not have write access to this repo"17:59
Tv catphish: stderr17:59
catphish: btw sounds like you might want gitosis17:59
catphish ooh of course, thanks tv17:59
vuf raz: it took a bunch of 32 bit libraries, obviously ...17:59
catphish thanks but i've just written a gitosis clone as i wanted user access to come from mysql18:00
abenea joined18:00
Tv *shrug*18:00
catphish left18:01
floppyears left18:02
WALoeIII joined18:02
jackdempsey left18:03
vuf the best thing about that scooter compare is that you can have the diff pushed up or down by marking which lines align in the left and right side18:06
floppyears joined18:07
Tv yeah sometimes meld gets pretty badly confused about that18:08
abenea suppose I touch a bunch of files, some of wich I want to commit on one branch and the others on the current branch. Is there a painles way of doing this?18:08
Tv abenea: commit some, checkout branch, commit rest18:08
krawek joined18:08
vuf what are the exact rules for when a dirty work tree will prevent you from changing branch?18:09
nickh joined18:10
abenea Tv: can't checkout another branch on dirty working dir18:10
Eridius vuf: when changing the branch would normally modify the dirty file18:10
abenea: you can if the file is unchanged in that other branch18:10
floppyears left18:10
Eridius basically, it errors out when it goes to write out the new version of the file and realizes the file's dirty18:10
although that's not really true, because it errors out before writing any files18:10
Tv it refuses only when the alternative would be losing your edits18:11
and then you can say "oh you'll probably get it right" with -m18:11
floppyears joined18:11
vuf okay, so no merging is done18:11
abenea Eridius: thanks, I know what I was doing wrong :)18:11
rmh3093_rmh309318:12
notmw Question about git pull. When I do git pull origin branch99, does that pull the remote origin's branch 99 into what ever branch I currently have checked out?18:12
Tv notmw: merges, yes18:13
advany joined18:14
advany left18:14
advany joined18:14
advany left18:16
sgrimm left18:21
Beket joined18:22
prof_freud left18:23
Voker57 can i push via git:// protocol? Can't find any docs...18:23
thiago_home yes18:23
unauthenticated and unencrypted18:24
advany joined18:24
thiago_home i.e., anonymous pushing18:24
tongueroo joined18:24
Voker57 ugh :(18:24
charon joined18:25
david_koontz joined18:25
deskin joined18:26
Voker57 SVN is better in that way, i can push to repo without shell access18:28
Tv Voker57: git can do that perfectly fine18:28
thiago_home you don't need shell access to push18:28
(even with ssh)18:28
Voker57 Tv: unauthenticated and unencrypted?18:28
thiago_home i.e., ssh != shell18:28
Tv Voker57: no, that would be silly18:28
demq could someone remind me of the command to uncommit the last commit?18:29
thiago_home demq: just the last one? Remove it from history completely?18:29
demq no i want the changes, i just dont want them to be in one commit18:29
Voker57 i have only ftp access and ability to run CGI scripts, can i push to git with those?18:29
demq i meant to commit only one file, but out of habit include -a18:29
thiago_home so you're going to commit them again?18:29
ah, I see18:29
git reset HEAD~18:30
glguy HEAD^18:30
thiago_home same18:30
demq yes, but as three commits not 118:30
glguy ~318:30
Voker57 (i can launch daemons via php-shell too :P)18:30
thiago_home HEAD~ works on Windows and zsh, HEAD^ doesn't18:30
glguy err18:30
thiago_home: doesn't ~ signify things not to match?18:30
hmm, you're right, of course18:31
thiago_home yes, with extendedglob, sure. But you need something not to match18:31
glguy good tip18:31
demq: if you reset one commit18:31
thiago_home you can also set nonomatch, which I do18:31
glguy you can then commit it back in parts18:31
BabelO left18:31
Tv Voker57: you could kludge something, but if you can't figure it out, you probably don't want to even try18:31
Voker57: decent virtual machines are $20/month, gitorious and github are free18:32
or repo.or.cz18:32
demq seemed to work as i wanted.18:33
thanks a lot folks.18:33
thiago_home Voker57: someone was working on cgi receiving18:33
maybe that was spearce18:33
Voker57 Tv: yes... looks like i have to find better hosting. I'm on github meanwhile, but i don't like services which i can't change18:33
thiago_home but I don't think it's anywhere near complete18:33
Tv Voker57: $20/mo, slicehost has been good to me18:34
demq btw, would it have made any difference if i wanted to go back further? like three commits? i guess not but....18:34
tsb left18:34
thiago_home demq: nope. HEAD~318:34
tsb joined18:34
demq cool.18:34
thanks a lot. much obliged18:34
thiago_home just remember that "reset" is equivalent of removing that commit from history18:34
demq yeah.18:34
thiago_home so, if you've pushed it and other people are using, they'll have a hard time following up18:34
demq yeah18:35
no this was unpushed.18:35
thiago_home good18:35
ciaran_ left18:35
demq ive used reset a lot, but with --hard mostly. for some reason it didnt "click" that it was relevent here tho. silly me.18:35
neurodamage joined18:38
neurodamage what's a good way to send email notifications when source code changes are commit?18:39
vuf Tv: so, can I install an existing server image to slicehost?18:40
Tv vuf: hmmm, not just like that i think18:40
vuf: though they might do it if you ask them18:40
vuf: you get a selection of most popular OS preinstalls18:40
vuf: and naturally you can overwrite it, if you're careful18:40
vuf: i know people switched from rh to debian remotely ;)18:41
vuf: (last line not related to slicehost)18:41
WarrenK left18:42
j-b joined18:43
j-b hello18:43
vuf Tv: I guess my question really is whether you can modify the bootloader at will, to point to a different root18:43
(anyway, off topic)18:43
j-b How can I split a file into many while keeping the history ? doing cp oldfile $newfiles; git add; git commit doesn't detect the copies ?18:44
Tv vuf: hmm they use xen so you're stuck with the stuff that's in dom018:44
vuf: or at least, my box there uses xen; it predates kvm18:45
vuf j-b: it will, with some options18:45
j-b vuf: options in cp or in add ?18:45
Tv j-b: write operations never detect anything18:45
vuf j-b: copies/renames are detected when reading out of the repo, not when storing in it18:46
Tv: thanks. Is eagain on slicehost?18:46
Tv vuf: yes18:46
j-b Tv: when I do one file to another one, it seems to work18:46
but not in one to many18:47
spool left18:47
charon j-b: try 'git blame -C $file' and see if it detects the right source18:47
vuf j-b: for example, "git show -C -C" will work18:48
johan-s joined18:49
j-b charon: no, it doesn't18:49
vuf: yes, it does.18:51
sgrimm joined18:51
j-b vuf: but then git blame -C doesn't18:51
charon apparently your slices are too small to be detected18:51
give a numeric arg to -C18:51
j-b too small ?18:52
235Ko is too small ?18:52
charon hmm18:52
"<num> is optional but it is the lower bound on the number of alphanumeric characters that git must detect as moving between files for it to associate those lines with the parent commit."18:52
vuf j-b: try some more -C18:52
j-b vuf: in blame ?18:53
vuf yeah18:53
tmm1 how do i undo a merge.. branch X was a featured merged into master, but it had a bug18:53
j-b vuf: trying it now18:53
loiseau joined18:53
vuf tmm1: reset to before the merge18:53
charon default copy score is 40 apparently18:54
tmm1 what if i have commits since then18:54
joshbuddy left18:54
vuf tmm1: fix the bug18:55
giom left18:55
j-b charon: git blame -C -C takes forever, but I am still hoping18:55
sgrimm left18:56
sgrimm joined18:56
andreaja joined18:57
tmm1 vuf: ...18:57
git revert -m looks like what i need18:57
vuf tmm1: right18:57
Tv tmm1: in general, you can't undo anything you've published; you can make the reverse change, and that's what revert does18:57
tmm1: but it's not the same as undo; the merge is done for good18:57
j-b btw, we received a mail for the GitSurvey... and our answer is : "Git is great" 'make it faster on windows' :D18:57
vuf: charon: blame -C -C works18:58
WarrenK joined18:58
charon nice... unfortunately it's so expensive that iirc linus recommended it as a stress test18:58
whee left18:58
j-b charon: so, how do I commit that now ?18:59
tmm1 Tv: that's fine18:59
whee joined18:59
charon j-b: you've already committed, haven't you? blame is strictly inspection18:59
j-b yes18:59
charon: sorry, push18:59
charon all copy and move detection in git is after the fact18:59
j-b yes18:59
tmm1 Tv: i don't get what argument -m takes though, how are the merge parents numbered?19:00
charon j-b: how to push depends on where to, but you just push out the branch like usual19:00
i.e. 'git push <remote> <branch>', or given sufficient tracking setup, 'git push'19:00
vuf charon: it may be expensive, but do other tools even have the operation?19:00
gbucher joined19:00
charon vuf: i'm not complaining :)19:01
j-b charon: yes, but other people will need to git blame -C -C to get it, right ?19:01
vuf charon: that was not a rhetorical question :)19:01
charon j-b: to _inspect_ it19:01
renan_saddam joined19:01
renan_saddam well, I do "git pull" and git returns a list of files like: "app/views/tasks/_form.rhtml: needs update"19:02
What I need to do to update it?19:02
Tv tmm1: branch things are merged to is always #119:02
charon j-b: to _get_ the change, they just proceed like always. to inspect in a way that shows where the lines "really" came from, they'll have to blame, but even if they just look at 'git log -- $file', the last commit in their history should be a pretty strong hint, shouldn't it19:02
vuf renan_saddam: commit it, it means the work area is dirty19:02
Tv tmm1: so depends on where you run merge/pull19:02
charon s/last/earliest/19:02
Tv tmm1: git show to see19:02
j-b charon: hmmm... ok... but not really optimal, but I understand. thanks19:03
renan_saddam vuf: commit? commit means send my version to server?19:03
charon vuf: i don't really know that many vcs but i recall a blog post by junio where he claimed this was unique to git and invented by him19:03
renan_saddam vuf: I wanna update my repo, like in svn19:03
boto joined19:04
vuf renan_saddam: you have local, uncommitted changes19:04
renan_saddam vuf: wow! I think I got it!19:04
vuf: just config files19:05
j-b charon: vuf: Tv: thanks you very very very much. Keep the good work.19:05
univate left19:05
renan_saddam thanks vuf!19:05
j-b left19:05
charon thinks renan_saddam should read a tutorial on the D in DVCS19:06
tmm1 Tv: do merge commits only happen on conflicts?19:07
Tv tmm1: http://eagain.net/articles/git-for-computer-scientists/19:07
renan_saddam charon: you'r right! I get this tip to me, thanks19:07
Voker57 left19:08
foca_ joined19:09
cryo_ joined19:11
cryo_ left19:13
cryo_ joined19:14
qrush left19:16
ponch84 left19:18
renan_saddam left19:19
Beket left19:19
cilly joined19:21
litage joined19:25
Lash| left19:27
irotas left19:28
foca left19:29
ponch84 joined19:30
Beket joined19:31
timcharper joined19:31
loiseau left19:32
iulian left19:33
ponch84 left19:34
jatt I compressed all pdf files with gzip and did a git-rm ./\*.pdf followed by git-add ./\*.pdf.gz and a commit. The repository is somewhat smaller now, but the .git directory size hasn't changed much. Is there a way to prune the deleted files (in such a way that .git gets smaller?)19:37
Mikachu if you still have the pdf$ files in the history, no19:37
jatt I don't need the history for them anymore, maybe is there a way to prune the files as if they never existed?19:38
Mikachu you need to write new history then19:39
jatt how?19:39
irotas joined19:39
notmw left19:39
Mikachu check git-filter-branch and git-rebase manpgaes19:39
charon jatt: the history is compressed anyway, why do you want to compress the pdfs yourself?19:39
jatt charon: I want to pull my repository in a machine from the university where I do have a small quota. So I was thinking in making my repository smaller in order to be able to pull it from the university.19:40
andresandrezZz19:40
andrezZzandres19:40
charon oh19:40
botanicus joined19:41
charon the only thing that might get smaller through such a move is the working copy. .git definitely keeps its size19:41
Mikachu of course .git will be larger if you have both .pdf and .pdf.gz in the history though19:42
jatt charon: you are right. That's exactly what happened. Nevertheless I will check Mikachu advice for git-filter-branch and git-rebase.19:42
charon indeed19:42
ph^_ joined19:42
ph^_ left19:42
qrush joined19:45
djwonk joined19:46
ThaDon general git-svn q here, have a local git repo, client wants all my stuff up on their svn repo. How do I tell my local repo that it should track a remote svn repo? Such that I can use svn dcommit/rebase. I've only ever used git svn in scenarios where I've git svn clone'd a remote svn repo at project start.19:50
djwonk I'd like to test the outcome of 'git pull' for "Already up-to-date.". However, bash return value indicates success for that case. Suggestions?19:50
ThaDon now I'm doing the opposite, I have an existing repo and I want to dcommit it all to the remote svn repo.19:51
jatt $ git filter-branch --index-filter 'git rm --cached ./\*.pdf' HEAD19:51
Cannot rewrite branch(es) with a dirty working directory.19:51
How do I clean a dirty working directory?19:51
Mikachu jatt: git status19:51
vuf I want to stuff my whole project into a subdirectory. Can filter-branch do that with --index-filter ?19:52
Mikachu vuf: why?19:52
vuf why I want to arrange it like that?19:53
jatt Mikachu: thanks that worked19:53
Mikachu vuf: yes19:54
jatt $ git filter-branch --index-filter 'git rm --cached ./\*.pdf' HEAD19:54
Rewrite 1fef263b9bb90b3883a2ef78557663314da21b56 (1/263)fatal: pathspec '*.pdf' did not match any files19:54
hmm.. so I guess I need to give the name of the files19:54
ph^ left19:54
jatt the full path19:54
charon why not just 'git rm --cached ./*.pdf'19:55
Mikachu jatt: --ignore-unmatched19:55
brendon_work joined19:55
charon the argument is evaluated in the shell which will expand the * for you19:55
jatt charon: I am not sure if that will purge the history too.19:55
Mikachu jatt: s/ed$/19:55
charon jatt: with gfb of course19:55
git filter-branch --index-filter 'git rm --cached *.pdf'19:55
of course, you need a different approach if you also have pdfs in subdirectories19:56
cilly left19:56
charon (with ls-files or so)19:56
jatt oh I see... hmmm is that recursive? If yes, of course 'git rm --cached ./*.pdf' is the right argument19:56
charon oh, sorry, i forgot that you're in index-filter19:56
jatt charon: yes I compressed all pdf in the subdirectories too19:56
vuf Mikachu: rearranging a bit during a cvs conversion, and I would like the history not to have a rename of all files19:56
charon jatt: forget what i said, i'll check what the real problem is19:57
Mikachu vuf: it just seems weird to have a repo where all files are in a subdir19:57
charon jatt: mikachu was right... almost. the option is --ignore-unmatch19:58
vuf Mikachu: there are other parts of the project, but they have not been kept in cvs ... I want those in the root, too (eventually)19:58
Mikachu charon: i was right, as i corrected myself19:58
charon oh, right.19:58
Mikachu vuf: ah19:58
charon hides19:58
jatt I see. So --ignore-unmatch will go ahead even if the files were previously removed?19:58
Mikachu or didn't exist yet19:59
johnw given a modified file, can I make every modification in that file appear as if it were a merge conflict, with <<< == >>> markers to show the two?19:59
charon no, it will go ahead even though there is no file called (literally) *.pdf19:59
instead of causing gfb to abort19:59
by the way, to really rewrite all of history you probably need to use '-- --all' instead of HEAD19:59
Mikachu vuf: git mv --cached something something?20:00
johnw i guess what I want generally is: giving a patch, change the subject file so that every patched region is now looks like a conflict marked region, so that both the patch and the original are now sitting side-by-side. Is there a tool that does this?20:01
Mikachu oh that option doesn't exist, bad advice :)20:01
Tv git add and rm --cached20:01
vuf Mikachu: well, something like it, anyway20:01
jatt nice20:01
$ git filter-branch --index-filter 'git rm --ignore-unmatch --cached ./\*.pdf' HEAD20:01
worked recursively.20:01
Ref 'refs/heads/master' was rewritten20:01
let's see if .git is smaller after commit :)20:02
Mikachu jatt: it's not20:02
jatt: and what do you mean "after commit"?20:02
jatt: you just changed every single commit in your history20:02
jatt hm. it is larger20:02
oh! I see20:02
I was thinking about doing git commit after the filter-branch.20:02
Mikachu you still have the old ones in refs/original and your reflog20:02
jatt (don't know why)20:03
hm. Is there a way to get rid of the old ones? (I'm going in the opposite direction my repository is getting larger and not smaller :-))20:03
Mikachu yes, rm -rf .git/refs/original; man git-reflog20:04
Gitbot yes: the git-reflog manpage can be found at http://git.or.cz/man/git-reflog20:04
Mikachu heh20:04
jatt: you realize that if the pdfs have changed in history and you only added the latest as gzips, you lose actual history?20:05
jatt Mikachu: I think so. I don't need the history of those pdfs at all. They will not change and I only need the current version of them.20:07
Mikachu then why are you using git? :P20:07
jatt Mikachu: In the repository I do have some pdfs but also text files (code, etc.). I need version control for the text files.20:08
vuf jatt: you realize that compressing the pdf files will not make .git smaller?20:08
jatt vuf: yes, I'm working in doing it using git-reflog and git-filter-branch, I'm still reading the git-reflog man page :)20:09
Guest45175 joined20:10
vuf jatt: I mean, git compresses files anyway20:10
it might actually be smaller if you don't compress, as zipped files cannot be delta compressed20:11
Mikachu if you want to make .git smaller, make core.compression 9 or so20:12
and repack -adf20:12
vuf if you want the checked out files to be small, though, pdf.gz is a fine idea :)20:13
Mikachu you can just delete them from the checkout when you don't need them too20:13
but i guess most pdf viewers handle .gz transparently?20:14
Tv vuf: pdf doesn't compress all that well20:14
back in the day of postscript, .ps.gz was common; no longer with pdf20:14
jatt vuf: I want to clone my repository in a machine at the university which has a ridiculously small quota, so I want that the cloned repository fits there20:14
vuf Tv: that depends, but it can have gzip/png/jpeg internally, so it might not compress well20:14
Tv vuf: sure, i mean on the average20:15
jatt right some debian packages contain compressed pdfs, but they are not so frequently used (I think acrobat reader doesn't uncompress them automagically as evince does).20:15
vuf is LaTeX .pdf output compressed by default?20:16
jatt pdflatex doesn't compress by default AFAIK20:16
johnw cool, this did it: git show branch:file > /tmp/file ; diff -D NAME /tmp/file file20:17
vuf jatt: okay, so compressing to pdf.gz makes sense ... proper hardware in a university would make even more sense, though :-)20:19
jatt I'm lost which option for git-reflog should I use after rm -rf .git/refs/original Mikachu20:19
Mikachu jatt: you want to expire the reflog entries from before the rewrite so that a repack will delete the old commits20:20
rmh3093 left20:20
jatt I will go for higher compression rate after I see what the filter-branch option did for a smaller .git20:20
Tammy-- joined20:20
vuf I am thinking that cloning the repo should get rid of the old cruft, no?20:20
timprouty joined20:22
jatt ok so I need to give a sound value to the --expire option? What if I choose --expire=0? will this affect all commits or only those for the files affected with filter-branch in the previous step?20:22
drizzd vuf: I don't know what happens if you hardlink a pack file though20:22
rdavila joined20:23
Mikachu vuf: yeah, if you use file://20:23
botanicus left20:24
jatt and the last thing: I'm not sure if git-reflog will create a new .git/refs/original directory?20:24
Mikachu no, only filter-branch does that20:24
and the other question doesn't matter, since you haven't made any commits after the rewrite20:25
gbucher_ joined20:26
jatt I see, I won't do rm -rf .git/refs/original after I understand better all involved commands :)20:26
Mikachu you mean before?20:26
you can as vuf suggested do a git clone file://your-repo somewhere else on the filesystem, and it should have the 'new' size20:27
deskin left20:27
jatt anyway it looks like this route will not compress my .git directory too much. I will try now with a higher compression rate (core.compression 9)20:27
Mikachu: I see just cloning it, ok will try that now20:28
tongueroo left20:29
tongueroo joined20:29
thannoy joined20:30
jatt du --max-depth=1 says 261120 for the clone and 261256 for the master.20:30
no much difference20:31
narflekw how do i see the message that was associated with a tag? i.e. `git tag` lists just the tag names20:32
Tv narflekw: git show20:32
narflekw ahh thanks20:32
warlock_mza left20:33
timcharper_ joined20:33
Arrowmaster joined20:33
Mikachu you can try one of20:34
git for-each-ref --format='%(tag) %(subject)' refs/tags20:34
git for-each-ref --format='%(refname) %(contents)' refs/tags20:34
too20:34
or either combination20:34
Tammy-- left20:35
Tv if he went that far, surely cat-file would be better20:35
Weaselweb left20:38
w00t_ joined20:38
deskin joined20:40
w00t left20:42
cryo_ left20:45
Bryson left20:46
jogla if i have different repositories, can i make something like a tag that is visible in more than one?20:46
Guest84351 left20:47
selckin submodules maybe20:47
gbucher left20:47
gbucher_ left20:48
vmiklos left20:48
ToxicFrog left20:49
timcharper left20:49
JimmyB_ left20:50
mcella joined20:53
mcella left20:53
vuf jogla: like different repositories of the same project?20:54
vmiklos joined20:54
ToxicFrog joined20:54
drewr joined20:56
wagle joined20:56
drewr Will git check ~/.git/hooks for hooks to run?20:57
bobmcw left20:58
jogla vuf: Seems to be something like that, they are at least related20:58
But have different releases and different versions20:58
I think submodules are the solution20:58
drizzd drewr: no20:58
mcr joined20:59
drewr So I need to keep a separate post-receive in each repository?20:59
drizzd yes20:59
Mikachu drizzd: if you put it in the template dir, every new repo will get it20:59
drewr k, thanks.20:59
Mikachu drewr even20:59
mcr under what conditions would: "git fetch --tags origin" do less than "git fetch origin"? This is with Rails/Capistrano's GIT SCM module.20:59
Bryson joined21:00
DrFrasierCrane left21:00
Mikachu mcr: when origin has updated branches, --tags will not fetch them21:00
mcr it won't fetch the branches, it won't fetch the tags, or it won't fetch even origin/master ?21:01
lorandi left21:01
Mikachu mcr: it will only fetch tags21:01
mcr hmm. so why would capistrano do that. That doesn't make sense.21:02
I thought maybe it was something weird about our repo that was confusing things.21:02
Mikachu maybe i am confusing fetch with push21:02
the manpage is inconclusive21:02
yofel joined21:03
cannonball left21:03
jatt left21:03
Mikachu but thinking about it, i'm probably wrong, and --tags downloads both branches and tags, while push --tags will only push tags21:03
mcr that's what I would have concluded from the man page.21:03
capistrano wants to run git fetch --tags origin to update the repo on the production server.21:03
that does nothing, and so the sha1 hash that it wants to branch against is not present, and things break.21:04
but running "git fetch" or "git fetch origin" pulls the missing piecs.21:04
cap 2.5.0 does: git fetch -q origin21:05
problem solved.21:05
priidu left21:05
eternaleye left21:05
mkdek joined21:08
ToxicFrog ponders writing git integration for nedit21:09
mkdek hi, how can I undo local changes non added to the index?21:09
ToxicFrog mkdek: as in, you have some modified files, you want to return to the unmodified state recorded in HEAD?21:10
johnw git checkout -- file21:10
ToxicFrog git checkout -- filenames21:10
deskin or git reset --hard HEAD21:10
ToxicFrog If you want to revert the entire working copy.21:10
deskin if you want to undo all your changes21:10
mkdek thanks, checkout worked fine21:10
ToxicFrog What gestures would I need... init, clone from, stage/unstage/revert this/all, commit, push/pull/fetch/merge...others?21:10
johnw or even git checkout -- .21:10
kumbayo left21:11
johnw which is arguably more consistent21:11
ShadeHawk joined21:11
dato joined21:13
etgryphon_ joined21:13
dato hello, if I had some commits in an old branch that I would like to keep around, but I would not like to see the branch in `git branch`, what are my options?21:14
fixUp joined21:14
johnw create a tag21:14
then delete the branch21:14
dato create a fake remote "trash" so that they only show with branch -a?, or there is a better way?21:14
johnw: but then the tag will get pushed with push --tags, which I wouldn't like either21:14
fixUp Am I right in assuming that to back up a git repository you simply copy the folder to the backup media ?21:14
johnw i woudn't mind having "invisible tags" myself21:14
timcharper_ left21:15
johnw you could always use a wrapper around "git branch"21:15
just filter it out21:15
dato heh, I'm not going to do that :)21:15
ToxicFrog fixUp: yep, it's entirely self-contained21:15
dato but thanks for the suggestion21:15
johnw you could create your own ref21:15
fixUp ToxicFrog: so It's ok to tar it onto tape ?21:15
mkdek left21:16
johnw echo $commit > .git/refs/hidden/foo21:16
ShadeHawk dato: move it for example to refs/Attic21:16
(copy as a file)21:16
ToxicFrog fixUp: indeed, and if you s/tape/USB/ I've done that myself quite often21:16
johnw just mkdir .git/refs/hidden first21:16
that will keep the commit from being gc'd21:16
timcharper joined21:16
eternaleye joined21:16
Mikachu fixUp: and it's best if nobody is writing to the repo while you're copying it21:16
fixUp ToxicFrog: USB ? an external hdd ?21:16
johnw you can then reference it as "git checkout refs/hidden/foo"21:16
dato johnw: right, that's what I proposed in the first place21:16
johnw ah, I missed that21:16
dato hm21:16
ToxicFrog No, flash memory - I have a few repositories I keep copies of on a 4GB pendrive for working on on the go21:17
dato well, I said a "fake remote"21:17
ToxicFrog In cases when I won't reliably have my laptop or a net connection21:17
dato because for all I know the "hidden" directory will still show in `git branch`21:17
(I have already a "kde3" and "kde4" directories)21:17
ToxicFrog Anyways, we digress; all information about a repository is stored in the repository itself (in the .git directory for non-bare repos, or just lying around for bare ones), including history, tags, etc21:18
Plus the working copy itself, of course21:18
So tar it up and you can untar it later and it's just as you left it21:18
dato though maybe I could go for "refs/.hidden"21:18
johnw doesn't git branch only show refs/heads21:18
?21:18
dato though maybe that'll gc it21:18
fixUp ToxicFrog: ok, thats what I thought it's good to know21:18
dato johnw: all files under refs/heads, including those in subdirectories of it (which is very nice)21:19
fixUp ToxicFrog: actually that ability is one of the best features of git21:19
ToxicFrog: cheap offline hosting in comparison to svn21:19
cilly joined21:19
dato meh21:20
johnw: I'm sorry21:20
22:16 <johnw> you can then reference it as "git checkout refs/hidden/foo"21:20
I read "refs/heads/hidden/foo" there, go figure21:20
johnw: so indeed thanks, I'm going to do that, is a very good suggestion21:20
stouset left21:21
fade-in joined21:21
johnw i thought of that because it's what git-filter-branch does with your old HEAD21:21
ToxicFrog fixUp: that's one of the reasons I initially looked at it - I was looking to put my stuff under version control, and git and svn were both high on the list21:21
johnw refs/original/etc.21:21
ShadeHawk ToxicFrog: ever heard of git-bundle?21:21
ToxicFrog So I looked at the install instructions...svn started with "install apache". Then I looked at git..."yum install git; git init"21:21
ShadeHawk: nope21:21
eternaleye_ joined21:21
ToxicFrog Hmm. That's cool.21:22
bobmcw joined21:22
ShadeHawk instead of tarring repostiroy on USB drive, you can use git-bundle which is meant for off-line transport (think of it as transport for sneaker-net)21:22
man git-bundle21:22
Gitbot ShadeHawk: the git-bundle manpage can be found at http://git.or.cz/man/git-bundle21:22
ToxicFrog Yeah, I just looked at the man page21:22
Hence "that's cool"21:22
I will definitely keep this in mind next time I need to do that21:23
jogla Do third party dependencies, like jar files, belong to the repository21:23
ToxicFrog At the moment I'm not doing it so much, since classes have resumed and I'm always either at home or within campus wireless coverage.21:23
dato left21:23
EmilMedve left21:24
Ryback_ left21:24
langenberg left21:25
Man-erg joined21:26
jatt joined21:27
jatt hi, I'm trying to clone a repository. I'm using sshfs to mount the partition where I want to clone it (the partition is on a remote machine).21:28
$ git clone foo21:28
shows:21:28
Cannot commit config file!21:28
fatal: Not a valid object name HEAD21:28
cbreak can you clone it to local?21:28
and then just copy it over?21:28
jatt if I use a local partition the clone works. What can be the problem?21:28
cbreak: I can try that sure21:29
advany left21:29
ShadeHawk let me guess: challenged filesystem, with case folding (so it uses .git/head instead of .git/HEAD)21:29
jatt cbreak: but actually I wanted to use sshfs to avoid the copying.21:29
cbreak I have no idea what SSHFS is :)21:29
jatt by me21:29
manually21:29
Beket left21:29
ShadeHawk why sshfs and not simply ssh? no git on other end?21:29
jatt ShadeHawk: the remote filesystem is a linux one (I hope).21:29
cbreak I think that you are in theory supposed to be able to rsync git repositories without problem21:30
ShadeHawk the question is does sshfs do case folding (vfat, anyone?)21:30
etgryphon left21:30
johnw cbreak: as long as they aren't being written to at the time, sure21:30
ShadeHawk so I guessed wrong...21:30
jatt until now I've been using git to synchronize things locally (as a replacement from rsync (with the advantage git gives me history))21:31
DrNick sshfs is just a FUSE interface to sftp/scp, so it does whatever the remote end does21:31
etgryphon_ left21:31
jatt afs is a linux filesystem, isn't it?21:31
Guest45175 left21:31
jatt the remote side is running afs21:31
tritz left21:31
cbreak afs is cross platform network file system21:31
ShadeHawk Hmmm...21:31
jatt hmm probably my student account files are living in a vfat partition then :(21:32
cbreak I think it's intended to be used as replacement for NFS21:32
zachinglis left21:32
jatt well that's the one used by my university. I didn't expect the git error only because I use a mounted partition through sshfs.21:33
very strange.21:33
cbreak can you try to create some files?21:33
jatt in fact the git clone created the .git file but no files where transfered21:33
cbreak "TEST", "test" and then try if they are different21:33
jatt cbreak: yes, I tested touch foo; cat foo > foo; sshfs seems to work fine, even the owner is correct21:34
cbreak also with FOO?21:34
I think the theory is that it does not work because the file system ignores case and does not preserve case21:34
jatt $ touch foo FOO; ls -altr foo FOO21:34
-rw-r--r-- 1 376403 10000 0 2008-09-18 22:34 FOO21:34
-rw-r--r-- 1 376403 10000 0 2008-09-18 22:34 foo21:35
cbreak hmm.... weird.21:35
jatt looks alright21:35
but, what does this21:35
Cannot commit config file!21:35
message mean.21:35
in fact the .git directory was created21:36
eternaleye left21:36
jatt but no files where transfered to the remote side21:36
no other files21:36
maybe is a FUSE bug?21:38
charon that message comes from a failed rename() system call21:38
so maybe sshfs doesn't like renames21:38
jatt hmm that's vfs I guess21:38
so probably is the fuse kernel module the cause of the problem?21:38
ShadeHawk git uses "create temporary file, then rename to final destination' trick for atomic change in many places21:39
jatt rename aka. mv?21:40
or something else?21:40
charon mv fails with "Operation not permitted". -- Use -o workaround=rename (requires sshfs version >= 1.3).21:40
ShadeHawk well, from C it is probably rename(...)21:40
charon from the google cache version of the sshfs faq, no idea why the original is dead.21:40
vbabiy left21:41
ShadeHawk but some of git are shell scripts, and they use probably 'mv a+ a'21:41
jatt you are right... man 2 rename21:41
charon mv is rename() unless across fs boundaries iirc21:41
sergiodj left21:41
sergiodj joined21:42
charon that might even make sense21:42
jatt charon: so passing -o workaround=rename to sshfs should help to fix my problem?21:42
charon no idea, that was just quoting the faq, you'll have to try it yourself21:42
wagle left21:42
charon perphaps sshfs decides not to support rename(), instead of half-supporting it via the remote system's 'mv' where it cannot easily guarantee atomicit21:43
+y21:43
fanthomas left21:44
jatt wow... is working!21:45
Checking out files: 3% (29/940)21:45
charon: thanks, -o workaround=rename fixed it.21:46
charon thank the google cache ;)21:46
jatt he :)21:46
flaguy joined21:50
jatt hm. and now after git pull:21:51
error: unable to write sha1 filename .git/objects/27/17293ce2bb0ccf3e061c8b5e32b902a80be440: Operation not permitted21:51
fatal: failed to write object21:51
again, this is only in the partition mounted with sshfs21:51
capisce_ joined21:54
jds_ joined21:55
deskin left21:55
charon so apparently it doesn't like link & unlink either huh21:55
kbingham left21:56
charon in case anyone is interested, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=318078#10 explains where the problem originates21:56
Gitbot [git 318078]: http://tinyurl.com/4w3ozx [blob]21:56
Mikachu heh21:56
jatt hm. I will need to try nfs or some other distributed filesystem different than FUSE then21:56
charon it's an sshfs/sftp problem, not a fuse problem21:57
cbreak afs? :)21:57
jatt I see21:57
bobmcw left21:58
eternaleye_ left21:58
eternaleye_ joined21:58
jatt hm that's a pretty old bug21:58
cbreak doesn't look like a bug21:59
more like a lacking feature21:59
jatt oh! and cvs update doesn't work with it either. Probably svn won't do.21:59
git pull doesn't.21:59
rmh3093 joined21:59
loinclot_ joined22:00
SRabbelier left22:00
jesselucas joined22:01
capisce left22:02
doener_ joined22:02
charon i don't get this. the code should resort to rename() which you seemed to have fixed22:02
Catfish_ left22:02
charon unless you _also_ have a write permissions issue. dunno.22:03
jesselucas I'm switching from subversion to git and having a bit of trouble wrapping my head around submodules. My current file structure has a directory called Projects with new projects as children. I'd like to make each project it's own submodule and make the parent directoy (Projects) the super project. Of course this doesn't work because submodules can't be direct children (from what I've read). What is the best practice for creating the file structure for multipl22:04
charon fae046bd around line 216522:04
Gitbot [git fae046bd]: http://tinyurl.com/3qy6pk [blob]22:04
jatt I can create files and it works. In the bug report someone tries22:04
$ touch x y; mv -f x y22:04
and it fails for him22:04
but for me it works22:04
so I'm not sure I'm hitting the same lacking feature22:04
ShadeHawk jesselucas: did you use svn:externals with Subversion?22:05
jesselucas ShadeHawk: No just one big nasty repo. Trying to fix that though22:06
ShadeHawk jesselucas: if not, perhaps you don't need submodules, only good split to modules (repositories)22:06
charon jatt: can you try 'touch x y; ln x y'?22:06
and if that succeeds, 'rm -f x'22:06
ShadeHawk jesselucas: but I have't use submodules myself, so I cannot help more than pointing to manpages, User's Manual, Community Book and Git Wiki22:06
jatt I see that some files where written (probably by the git clone), e.g.:22:07
-r--r--r-- 1 376403 10000 199 2008-06-22 12:47 .git/objects/27/238f0cca02a7b0c010781783ee99a3622fdfa622:07
why .git/objects/27/17293ce2bb0ccf3e061c8b5e32b902a80be440: Operation not permited hm.22:07
sure22:07
capisce_ left22:07
jatt $ ln x y22:07
ln: creating hard link `y': File exists22:07
charon oh wow22:07
int ret = link(tmpfile, filename);22:07
loincloth left22:07
charon but man 2 link says: On success, zero is returned. On error, -1 is returned, and errno is set appropriately.22:08
jatt I get the same error in my local partition (not in the sshfs one)22:08
charon jatt: you're on newer than 1.5.6-rc3 right?22:08
loiseau joined22:08
jogla Hello, if i understood it right, the commit id is a sha1 hash over the diff22:09
charon (file exists is fine)22:09
jogla How can you be sure that there are no collisions22:09
capisce joined22:09
Eridius jogla: actually, it's not over the diff22:09
cbreak I think it's more complicated22:09
Eridius it's a hash of the commit object22:09
which includes a reference to the tree object (referenced via the hash)22:10
jatt charon: no, I'm using git version 1.5.4.3. In my university is even older git version 1.5.5.122:10
charon hmmm22:10
jatt I mean newer22:10
ops22:10
Eridius and the tree's hash depends on the hashes of every single file reachable from that tree, and the tree structure22:10
cbreak it also contains the hash of the previous commit object22:10
charon ok i didn't read into that old code22:10
Eridius and the author and message and other metadata22:10
charon but the newest one is definitely broken22:10
cbreak (the commit object of a merge commit has several parent hashes)22:10
jatt I see22:10
So upgrading won't help for me22:10
Eridius in other words, the hash of the commit object is effectively a hash of the entire history and contents of the repo22:11
cbreak I think you can get collisions22:11
but it's quite unlikely22:11
Eridius *extremely* unlikely22:11
jatt so all this problems I'm having are due lack of features (or maybe bugs) in git _and_ sshfs?22:11
Eridius you're more likely to have a cosmic ray blow up your hard drive22:11
cbreak what problem in git?22:11
charon jatt: well it's too late to fix bugs in pre-1.6.0.x anyway, so let's just focus on the newer ones ;)22:12
jatt I wonder if using anohter remote filesystem (e.g. nfs) would help.22:13
instead of sshfs22:13
jogla Eridius: Good to know :) Thank you22:13
loiseau Eridius: What would be the effect if there was a collision?22:13
Eridius loiseau: git would probably complain about corrupted objects22:13
unless the collisions were of two of the exact same object. Then it would probably just get confused22:13
but again, you're never ever going to get a collision22:14
jesselucas ShadeHawk: Do you know of a tutorial on using git for managing multiple projects?22:14
loiseau ah interesting22:14
yeah I know ;)22:14
Eridius s/exact same object/exact same object type/22:14
doener left22:14
charon jatt: if you want to build 1.6.x and try with that, i can cc you the patch i'm going to send22:15
gbucher joined22:15
loiseau Just some kind of academic interest22:15
jatt charon: sure I will install and test with 1.6.0.2 now.22:16
jesselucas left22:19
charon jatt: http://rafb.net/p/VumbRM50.html22:20
save it somewhere and feed it to 'git am'22:20
ijcd__ joined22:21
danten left22:21
charon (running the testsuite, but since it was broken all the time i don't expect anything bad to happen)22:22
jatt charon: ok, will do, I'm building git (without the patch) right now22:22
gbucher left22:23
gbucher joined22:23
gbucher left22:23
archis joined22:23
charon that went through fine... yay for tmpfs22:24
ThaDon Hey guys, any clue why when I execute a git clone using ssh, I'm getting: bash: git-upload-pack: command not found. I mean, I login to the server using the same user that git is using and I can execute git-upload-pack no problems22:26
jatt charon: without the patch (only with git-1.6.0.2) the git pull worked.22:26
makes sense?22:27
charon ok, then my logic wasn't all that flawed earlier22:27
ThaDon is perplexed22:27
lamont left22:28
charon jatt: i think you can forget about the patch, the bug only triggers on EEXIST which means a hash collision or a broken link()22:28
so, glad it worked.22:28
dsyzling joined22:28
ijcd joined22:29
jackdempsey joined22:29
ThaDon oh... git expects git to be /usr/bin....22:29
ijcd_ left22:30
jatt charon: ok, thank you very much for your help :), I will keep using sshfs to synchronize my stuff22:31
sshfs+git22:31
charon but if i get this right, you still need -oworkaround=rename?22:31
ThaDon jatt, yeah I'll have to get sshfs going fosho22:31
wagle joined22:32
jatt charon: yes the partition is still mounted with -workaround=rename, will test without it22:32
jonkristian this is driving me crazy, in my webfolder i have setgid to let people in the group work on it, and i have a hook script that pulls updates to that dir, but git reverts the setgid bit to normal, 755/644 , any ideas how i can fix this?22:32
charon jatt: thanks. if you want to do everyone a favour, you could write down on http://git.or.cz/gitwiki/GitFaq that sshfs needs -o workaround=rename and a relatively new git22:33
jatt sure I will create an entry for this22:34
cbreak jonkristian: can you do it in a hook?22:34
vuf jonkristian: setup a webfolder user, and have people push through ssh22:34
jonkristian: wait, do you have people working *directly* in the webfolder?22:35
Ademan left22:36
adamm jonkristian: maybe the umask is not set right?22:36
boto left22:36
charon jatt: great, thanks. i'm off to bed, happy hacking :)22:37
charon left22:37
radarek left22:37
zjason joined22:38
jonkristian vuf: yes, well, git is updating that webfolder directly on a push from each user22:38
vuf: each user has umask 0002 in their .zshrc on that directory22:38
dsyzling left22:39
codeshot joined22:39
vuf jonkristian: I think the ssh pushing should work22:39
juanjoc left22:39
vuf then all files are created as the webfolder user, and you don't need setgid. personally, I like that better22:40
jackdempsey left22:40
ShadeHawk left22:40
jonkristian vuf: im not sure i understand22:41
vuf hrm22:41
lamont joined22:41
jonkristian can i get git to pull as a certain user for that dir?22:41
ideally, it would be awesome if it could pull files with web user/group since it needs either one22:42
people are already pushing through ssh, that's how we've set up git22:43
ssh://user@domain.com/path/to/repo/project.git22:43
vuf oh22:43
bentob0x left22:43
vuf then my proposal is to have a common [email@hidden.address]22:44
if you have authorization concerns, that may not work22:44
jonkristian ah22:44
i could create a git user and let everybody use that, but if there's some other way22:45
BarryCarlyon left22:45
jonkristian and i'd really like an overview on who's done what22:45
vuf I always hated the setgid since it seems to break every now and then - maybe that is just me22:46
jonkristian yeah, i hate that stuff like that doesn't work22:46
ijcd__ left22:46
vuf you should have the overview in the author field of commits, though :)22:46
jonkristian but having all users in a group should really be enough, i don't know why this happens22:47
yeah22:47
vuf well, I guess you should be able to fix the permissions in the hook, as cbreak suggested 15 minutes ago :)22:48
k-s joined22:49
k-s guys, what to do when git-rebase fails with whitespace errors?22:49
git-rebase --continue fails with "nothing added"22:49
no files are modified22:49
fixUp left22:49
vuf k-s: that is two questions?22:49
Mikachu up to three now22:50
k-s: if the rebased commit is no longer needed, you can skip it with git rebase --skip22:50
madewokherd joined22:50
k-s Mikachu: i guess it's still needed22:50
zjason_ left22:50
k-s the patch still sits under .dotest/patch22:50
should I manually git-apply it?22:51
vuf k-s: you should add the changes22:51
k-s vuf: yep, but git-apply .dotest/patch ?22:52
thannoy left22:52
perezd88_ joined22:52
david_koontz left22:53
ajonat joined22:53
ciaran joined22:54
jonkristian vuf: someone was talking earlier about a group setting in git, is that right?22:54
vuf hrm, they were, but I don't know it22:55
jonkristian ok22:55
ciaran left22:56
ciaran joined22:56
vuf jonkristian: I have planned that same setup, so I hope you find a solution for me :)22:56
k-s ok, git-apply .dotest/patch + git-add files worked, thanks22:56
jonkristian --shared22:57
git init [-q | --quiet] [--bare] [--template=<template_directory>] [--shared[=<permissions>]]22:57
djwonkdjwonk_afk22:57
jonkristian but that can only be set up when first creating a repo, or can i change the one i have22:57
djwonk_afk left22:58
loiseau left23:00
grumpy joined23:01
grumpy lo23:02
rtomayko_ joined23:02
aroben left23:04
tongueroo hey guys23:04
grumpy yop23:04
jonkristian vuf: git init --shared=group will setgid on the repositories, don't know how it acts on a pull yet though23:04
tongueroo how do i delete a remote tag? i just pushed all my tags "git push --tags"23:04
and i dont want some of those tags on the remote repos :P23:05
softdrink left23:06
vuf jonkristian: great, thanks23:06
tongueroo is it similar to the weird syntax for deleting branches :) git push origin :branch_name ?23:06
jonkristian vuf: but, do you know if it's possible to apply that to an already existing repo?23:07
grumpy Linus was talking about tracking a function even after moving it from one file to another, what command does that?23:08
tongueroo :) yup, i guess that does the trick23:08
vuf jonkristian: it seems you should set core.sharedRepository(?)23:09
Toranin1 left23:10
vuf grumpy: git blame -C -C destinationfile23:10
LiamH left23:11
perezd88 left23:13
ciaran left23:13
drizzd how can I fetch the full history with a shallow repository? git fetch --depth=0? It does not remove .git/shallow, however.23:14
ciaran joined23:14
sgrimm I have a bit of corruption in a git repo, a commit whose tree object is missing. But it's a leaf node commit from an old topic branch I don't care about. How do I remove it from the object database? (It is making git repack fail.)23:18
ciaran left23:18
grumpy vuf: ???23:19
ciaran joined23:19
grumpy vuf: assuming I have a function named 'foo' which is currently in finalfoo.c, this function change files and also prototypes...23:19
vuf: what would be the command line to type?23:20
narflekw left23:20
ciaran left23:21
ciaran joined23:21
grumpy git blame -C -C destfile seems to be showing who, when, changelist#, ... for each line of a file23:22
jonkristian vuf: good news, it's working now, i can push changes and they will get pulled in the webdir, and my co-worker can do the same, with --shared=group it seems to preserve setgid even on the webdir23:30
so basically i can just add whomever to that group, and they're ready to go23:30
foca_ left23:32
jpeeler left23:33
softdrink joined23:34
Beket joined23:35
rtomayko_ left23:38
bronson left23:39
ciaran left23:39
pcc1 joined23:39
ciaran joined23:39
mutex lets say I have a file in some state that is in the git repository in that state as well23:40
but I don't know what commit ID that is23:40
is there a way to somehow find the commit id ?23:40
mugwump hmm23:41
what are you trying to achieve?23:41
are you looking for a commit that had a file in state X ?23:41
mutex I have a file somebody gave me from a revision I don't have a tag for23:41
mugwump ah23:41
mutex so I'd like to figure out exactly what commit-ID the file in this state is23:41
mugwump ok, so first find the blob id of the file you have23:41
git-hash-object -t blob filename23:41
then, you can search for that sha1 in the output of 'git-whatchanged --all'23:42
or, if you know what the filename is going to be called, 'git-whatchanged --all -- filename'23:42
mutex ah, and I can sha1 the file that I currently have23:42
FunkeeMonk left23:43
mugwump right. just not with `sha1sum` :)23:43
mutex oh...23:43
Big_Lebowski joined23:44
pcc1 how can I extract only those commits that exist within a branch but not in the mainline, so that I can back them up? I am working privately on a modification to a large open source project and would rather not back up the whole history23:44
ciaran_ joined23:44
mutex mugwump: well it did narrow everything down to two changes, so that's good ;-)23:44
mugwump pcc1: see man git-rev-list. basically, git-rev-list branch1 branch2 --not origin/branch1 origin/branch223:45
ciaran left23:45
Gitbot mugwump: the git-rev-list manpage can be found at http://git.or.cz/man/git-rev-list23:45
grumpy does anyone know how to track the changes made to a function "foo" across the history (including file changes...)?23:46
ciaran_ left23:46
ciaran joined23:46
Big_Lebowski left23:46
mugwump grumpy: see git-blame, and git-log -Sfoo23:46
you need to set options to git-blame to get it to follow functions moving around files23:47
ereslibre left23:47
mugwump and it's not perfect, esp. wrt to changing indents etc23:47
djanowski joined23:49
djanowski hi folks. is there a way to have git ignore "newlines at end of file"?23:49
carrus85 left23:50
archis left23:51
Yuuhi left23:52
pcc1 mugwump: thanks. how do I get git-rev-list to show the diffs. the man page talks about formqtting options but not about actually showing the diffs23:54
grumpy stupid question, if 2 users pushes their changes at the same time, what happened? will one be accepted and the other one rejected?23:54
mugwump pcc1: well, git-rev-list options are common to other commands that do that23:55
ie, git-log -p23:55
or you can use git-show with individual commits23:55
grumpy: correct23:55
grumpy also, is it possible to do a commit ammend in a remote repository? (I setup my home server with git, and I pushed a commit realizing later that I messed up the comment... To fix it, I had to recreate the whole database...)23:57
lolage0 left23:57
schacon left23:58
krawek left23:58
ciaran left23:59
ciaran joined23:59
djanowski left23:59

Logs Search ←Prev date Next date→ Channels Documentation