| 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 left | 00:01 |
|
Eridius
| raz: better tools actually use the ancestor | 00:02 |
|
| vimdiff doesn't appear to do that | 00:02 |
| ← LostInTheWorld left | 00:02 |
|
raz
| well, the best merge tool i know is "meld". but i cant get it to work on this box.. grrr.. pygtk screwups | 00: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 time | 00:04 |
|
| vimdiff works quite well when only two files are involved :) | 00:04 |
|
| mugwump just used git-commit -m blah filename | 00:05 |
|
mugwump
| raz: write a script? see git-ls-files -u | 00:05 |
|
raz
| hmmm | 00:06 |
| ← RaceCondition left | 00: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 it | 00:06 |
| → containmentfield joined | 00:07 |
| ← mithro left | 00:07 |
|
mugwump
| I mean, when you see an failed merge | 00: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 file | 00: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 joined | 00: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_ left | 00:09 |
| → rafaelbandeira3 joined | 00:10 |
| → cods joined | 00:11 |
|
Pieter
| twb: git --git-dir pull perhaps | 00:12 |
| ← zachinglis left | 00:13 |
| ← clamothe left | 00:13 |
|
twb
| Hmm; git --git-dir midori pull --error--> fatal: Not a git repository: 'midori' | 00:13 |
| ← imakethings left | 00:13 |
|
Pieter
| i think git-dir has to point to the .git | 00:14 |
|
| and then you probably also need to give the path to the workt tree | 00: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 joined | 00:15 |
|
Pieter
| try git --git-dir=midori/.git --work-tree=midori pull or so | 00:15 |
|
twb
| Haha | 00:15 |
|
| $ git --git-dir=midori/.git --work-tree=midori pull | 00:15 |
|
| fatal: /usr/bin/git-pull cannot be used without a working tree. | 00:15 |
| → narflekw joined | 00: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 tree | 00:16 |
|
| i.e. to test that it DTRT | 00: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 directory | 00:18 |
|
raz
| Eridius, well, i said "git checkout $rev myfile" | 00:18 |
|
Eridius
| raz: the $rev there is the commit | 00: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 joined | 00:19 |
|
Eridius
| well, I mean the checkout will update the working tree and the index. but it won't record what commit it used | 00:19 |
| ← dewogalang left | 00:20 |
| → joshbuddy joined | 00:20 |
|
raz
| hmmm | 00: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 index | 00:20 |
| → dewogalang joined | 00:21 |
|
Eridius
| try git diff --cached | 00:21 |
|
raz
| hummm | 00:21 |
| ← codeshot left | 00:21 |
|
DrNick
| or git status | 00:21 |
|
raz
| what does --cached do? | 00:22 |
|
Eridius
| it diffs the index vs HEAD | 00:22 |
|
| rather than the working tree vs the index | 00:22 |
| ← joshbuddy left | 00:23 |
|
raz
| how do you guys work with that stuff without getting horribly confused all the time? ;) | 00:23 |
|
Eridius
| hah | 00:23 |
|
Pieter
| it's pretty logical once you get into it | 00:23 |
|
raz
| hmm | 00:23 |
| ← patmaddox left | 00:24 |
|
raz
| i don't get the advantage of this "index" thing... | 00:24 |
|
| so far it has only managed to confuse me | 00:24 |
|
Eridius
| it's incredibly useful | 00:24 |
|
raz
| any use-cases? | 00:25 |
|
mugwump
| http://www.linuxmagazine.com/id/2547 | 00:26 |
| ← containmentfield left | 00:26 |
|
Eridius
| sure. when you don't want to commit everything in your tree | 00: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 file | 00:27 |
|
mugwump
| http://www.scribd.com/doc/2545829/Embrace-The-Git-Index # free online version of that article | 00:27 |
|
Eridius
| why is it giving you any trouble at all? | 00:27 |
|
raz
| so i assume there must be a huge use-case | 00:27 |
|
Eridius
| `git commit -a` | 00:27 |
| → ben_h joined | 00: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" thing | 00:27 |
|
| Eridius wishes he saved an article he ran across a while ago explaining the uses of the index to subversion users | 00:27 |
| ← clamothe_ left | 00:27 |
|
raz
| well, gonna read that article, maybe it enlightens me | 00:28 |
|
Eridius
| http://tomayko.com/writings/the-thing-about-git | 00: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, --prefix | 00:30 |
| ← pjhyett left | 00:31 |
| ← igorgue left | 00:31 |
| ← Bryson left | 00:32 |
| ← ben_h left | 00: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 world | 00:34 |
| ← eddyp left | 00:34 |
|
twb
| How about the analog of "darcs changes --count" ? | 00:34 |
| → patmaddox joined | 00: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 too | 00:35 |
|
| git rev-list --no-merges HEAD | wc -l ? | 00:36 |
| → archis joined | 00:36 |
|
Eridius
| but the point is any sort of number like that is at best transient | 00: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 numbers | 00:36 |
|
mugwump
| twb: 'git describe' is normally what people use for that | 00:37 |
| ← kanru left | 00:37 |
|
raz
| Eridius, i think comment 16 in that article (http://tomayko.com/writings/the-thing-about-git) sums up my opinion | 00:37 |
|
Eridius
| raz: you should have linked to the comment | 00:37 |
| → softdrink joined | 00:38 |
|
twb
| Eridius: I'm aware of that. | 00:38 |
|
raz
| Eridius, http://tomayko.com/writings/the-thing-about-git#comment-74399 sorry | 00: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 already | 00:39 |
|
| mugwump, thus i'll keep on searching for index use cases :) | 00:39 |
|
Eridius
| twb: sure, but you have to explicitly tell it to | 00:39 |
|
mugwump
| look, it's the way it works, it has many advantages you don't understand yet, get over it | 00:40 |
|
Eridius
| raz: git supports basically every workflow under the sun | 00: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 it | 00:40 |
|
mugwump
| twb: that's why you have topological sorting | 00: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 hard | 00:40 |
|
Eridius
| raz: you're rejecting every possible use of the index that's suggested | 00:40 |
|
| that's why it's so hard for you | 00: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 reset | 00:41 |
|
| git filter-branch --index-filter | 00:41 |
|
Eridius
| raz: dude, I gave you an article to read about the index | 00:41 |
|
mugwump
| merging | 00: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 like | 00:42 |
| → ben_h joined | 00:42 |
|
twb
| mugwump: there were some tags a ways back | 00:42 |
| ← dewogalang left | 00:42 |
|
mugwump
| they're probably not annotated | 00:43 |
|
twb
| git tag lists eight of them | 00: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 debunked | 00: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 workflow | 00:44 |
|
| that's not the same as debunking | 00: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 commits | 00:44 |
| ← MarcWeber left | 00:44 |
| → Bryson joined | 00: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 it | 00:44 |
|
mugwump
| but it does not go the whole way to showing that this is impeded because of the index | 00:44 |
|
Eridius
| raz: you're missing the whole concept of MULTIPLE WORKFLOWS | 00: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 stgit | 00:45 |
|
mugwump
| or just a commit hook | 00:45 |
|
| mercurial and bzr are simply less flexible, for many reasons including the lack of a staging area | 00:46 |
|
| you can't script as well with those tools | 00: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 tool | 00:46 |
|
| not the *only* tool, but *a* tool | 00:46 |
|
| raz: the original git wasn't even billed as a VCS, it was billed as the tools to build your own VCS | 00:46 |
| → bts- joined | 00:46 |
|
Eridius
| but yeah, most people tend to use many of the common features | 00: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 joined | 00:47 |
|
RandalSchwartz
| now try a merge. :) | 00:47 |
| ← harinath left | 00: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 degree | 00:48 |
| → kanru joined | 00: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 correct | 00: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 left | 00:50 |
| ← achew22 left | 00:50 |
| → mithro joined | 00:52 |
| mw → mw|out | 00:53 |
| → kef joined | 00: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 VCS | 00:54 |
| → ajonat joined | 00:54 |
|
twb
| Eridius: so it's another TLA! ;-P | 00:54 |
|
Eridius
| git is a TLA? | 00:54 |
|
twb
| TLA as in GNU Arch | 00:54 |
|
Eridius
| what? "GNU Arch" isn't a TLA. "GNU" is | 00: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 Acronym | 00:56 |
| ← tongueroo left | 00:56 |
| → Jacolyte joined | 00:56 |
| ← schacon left | 00:59 |
| → rmh3093 joined | 00: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 repo | 00:59 |
|
| running the hook by hand on teh server woks | 00:59 |
|
mugwump
| chmod +x ? | 00:59 |
|
Eridius
| tag every commit? why? | 01:00 |
|
narflekw
| er not commit | 01:00 |
|
| push | 01:00 |
|
Eridius
| ah | 01:00 |
|
narflekw
| sorry | 01:00 |
|
| added `git tag -a -m 'testing' "autotag_`date +%Y%m%d%I%M%S`"` before git-update-server-info | 01: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 want | 01:01 |
|
| it just doesn't appear to happen when i push | 01:02 |
| → Lars_G joined | 01:02 |
|
narflekw
| tho it does say it's updated the server info | 01:02 |
|
mugwump
| you need to specify what to tag | 01:02 |
|
narflekw
| ahhhhh | 01:02 |
|
mugwump
| it will be $1 or $2 or something | 01: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 uptodate | 01:03 |
|
| *not | 01:03 |
|
| that means you have a dirty working tree | 01:04 |
|
Lars_G
| hhmmm let me check I think I commited... locally you mean? | 01:04 |
|
Eridius
| you need to commit first | 01:04 |
|
Lars_G
| not a push | 01:04 |
| ← rmh3093 left | 01:04 |
|
Eridius
| right, locally | 01:04 |
| → pjhyett joined | 01:05 |
|
Lars_G
| doh | 01:05 |
|
| I've used centralized CSV for so long, that I can't distinguish between commit and push | 01:05 |
|
| Lars_G slaps himself | 01:05 |
|
Lars_G
| CVS | 01:05 |
| ← saturnflyer left | 01:06 |
| ← kbingham left | 01:06 |
|
ben_h
| you can still do it without pushing | 01:06 |
|
| if you want to keep your changes local. | 01:07 |
| → saturnflyer joined | 01:07 |
|
Lars_G
| ben_h: I have to, no permissions on the remote | 01:07 |
|
| ;) | 01:07 |
|
ben_h
| :) | 01:07 |
|
Lars_G
| it's just bad habits from svn | 01:07 |
|
ben_h
| one way (and i don't know if this is considered the best/easiest) is | 01:08 |
|
| git checkout -b lol && git pull origin master && git checkout master && git merge lol | 01:09 |
| → warthog9 joined | 01:09 |
|
ben_h
| or you could rebase lol | 01:09 |
|
| if appropriate | 01:09 |
| ← saturnflyer left | 01:10 |
|
Lars_G
| lol | 01:11 |
| → joshbuddy joined | 01:12 |
|
johnw
| if I merge lol, will get tell me "I haz no commitz for uz!" | 01:13 |
| → clamothe joined | 01: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 upstream | 01:15 |
| ← irotas left | 01: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 svn | 01:16 |
|
| rebases only | 01:16 |
|
clamothe
| gotcha | 01:16 |
|
| any way to do it now then? | 01:16 |
| → marj joined | 01:17 |
|
uau
| well if you haven't done anything after the merge you can just delete it from the history | 01:17 |
|
clamothe
| I've done a few merges actually | 01:17 |
|
| have 3 merges over time | 01:17 |
|
| I could just make a diff of my branch and master | 01:17 |
|
| and apply that to master | 01:18 |
|
| right? | 01:18 |
|
| it wouldn't preserve my commit logs | 01:18 |
|
| but that's okay, I can compound them | 01:18 |
|
uau
| you cannot push history with merges with svn | 01:18 |
|
| so somehow you have to construct a branch that's just additional non-merge commits on top of what git-svn has | 01:18 |
|
| how to best do that depends on the details of what you've done | 01:19 |
|
clamothe
| I think it will be easiest just do `git diff master mybranch ... git apply mypatch` to master | 01:19 |
|
uau
| an easier way to do the same is "git checkout mybranch ." while on master | 01:21 |
| ← parasti left | 01: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 version | 01:22 |
| → gretch_ joined | 01:23 |
| → nn joined | 01:24 |
|
Lars_G
| johnw: http://show.degopro.com/catz.jpg | 01:25 |
| → _VVSiz_ joined | 01:26 |
| ← univate left | 01:27 |
| → univate joined | 01:27 |
| ← ereslibre left | 01:29 |
| gretch_ → gretchen | 01:29 |
| → tongueroo joined | 01:30 |
| → ereslibre joined | 01:30 |
| ← Lars_G left | 01:31 |
| → mfwitten joined | 01:31 |
|
mfwitten
| Hello. Where can I read about grafts? Documentation/ doesn't have much from what I grep | 01:31 |
|
Eridius
| git-filter-branch is the only place I've actually seen documentation | 01:32 |
| ← tongueroo left | 01:32 |
|
mfwitten
| ok | 01:32 |
| → JimmyB_ joined | 01:33 |
| ← pjhyett left | 01:34 |
|
mfwitten
| What exactly are the technical reasons why a shallow repo has limitations? | 01:35 |
| ← spearce left | 01:37 |
| → aiur joined | 01:37 |
| → jaredj joined | 01:38 |
| → jaswinder joined | 01:38 |
| → bogolisk joined | 01:38 |
| ← bogolisk left | 01: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_ joined | 01:41 |
|
jaredj
| oho look at this copious error message. nevermind, i'm sure it'll direct me well | 01:42 |
| ← VVSiz_ left | 01:43 |
| ← grindz left | 01:43 |
| ← david_koontz left | 01:44 |
| ← omally__ left | 01:44 |
| ← Guest84351 left | 01:44 |
| → xhanjian joined | 01:46 |
| ← johnw left | 01:47 |
| ← joshbuddy left | 01:49 |
| ← whee left | 01:53 |
| ← markkalderon left | 01:54 |
| ← xhanjian left | 01:57 |
| → xhanjian joined | 01:57 |
| ← aiur left | 01:57 |
| ← kef left | 01:58 |
| ← cbreak left | 01:58 |
| → kef joined | 02:00 |
| → bobmcw joined | 02:00 |
| ← davidfetter left | 02:02 |
| ← ereslibre left | 02:03 |
| → davidfetter joined | 02:03 |
| ← xhanjian left | 02:04 |
| ← clamothe left | 02:07 |
| → capisce joined | 02:08 |
| ← capisce_ left | 02:11 |
| → joshbuddy joined | 02:12 |
| ← ijcd left | 02:13 |
| ← bts- left | 02:13 |
| → rmh3093 joined | 02:14 |
| ← sgrimm left | 02:15 |
| → ^conner joined | 02:15 |
| ← joshbuddy left | 02:16 |
|
^conner
| I'm having trouble creating a checkout/bracnch that merges two remote linux trees | 02: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 treeB | 02:17 |
|
| but that pukes on me saying the branch already exists | 02:17 |
|
MaddHatter
| do you want git merge, maybe? (is there a git svn-merge?) | 02:19 |
| ← xjrn left | 02:20 |
| → lima joined | 02:20 |
|
^conner
| MaddHatter, that could be it | 02:22 |
|
| git merge netdev-2.6 tip | 02:23 |
| → clamothe joined | 02:23 |
|
^conner
| netdev-2.6 - not something we can merge | 02:23 |
|
| hmm | 02:23 |
|
| it doesn't work with branch names from those remotes either | 02:24 |
|
MaddHatter
| I don't use git+svn, so I can't help you much there | 02:29 |
| → jerbear joined | 02:31 |
| → ZorbaGama joined | 02:36 |
|
^conner
| MaddHatter, I'm not using SVN at all, I'm pulling linux git trees | 02:37 |
| ← pygi left | 02:37 |
| → pygi joined | 02:37 |
|
MaddHatter
| oh... I merged your comment into mfwitten's I guess | 02:37 |
|
mfwitten
| MaddHatter: Yeah, I noticed ;-) | 02:38 |
| → k776 joined | 02: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 up | 02:42 |
| neurodamage → neurodamage|away | 02: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 solution | 02:43 |
| ← marj left | 02:43 |
|
offby1
| ZorbaGama: I don't have any specifics | 02:45 |
|
| just a couple of vague hunches | 02: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 joined | 02:47 |
|
narflekw
| git push --tags | 02: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 occur | 02:51 |
|
| thanks offby1/narflekw | 02:51 |
| ← twb left | 02:52 |
| ← cilly left | 02:52 |
|
offby1
| "There will be tests" | 02:53 |
| ← kukks left | 02:54 |
|
ZorbaGama
| git push --tags did the trick | 02:54 |
|
narflekw
| =] | 02:55 |
|
| hooks don't appear to be running after a push on my remote server | 02:56 |
| ← jackdempsey left | 02: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 hook | 02:57 |
| ← merlin83 left | 02:57 |
| ← mfwitten left | 02:59 |
| ← Yuuhi left | 03:03 |
| → marj joined | 03:03 |
| → schacon_ joined | 03:05 |
| ← schacon left | 03:05 |
| ← statim left | 03:06 |
| ← MaddHatter left | 03:06 |
| → statim joined | 03:06 |
| → MaddHatter joined | 03:08 |
| → schacon joined | 03:09 |
| ← crab left | 03:10 |
| → LostInTheWorld joined | 03:13 |
| ← jerbear left | 03:13 |
| → jeukku joined | 03:14 |
| ← schacon left | 03:16 |
| → schacon__ joined | 03:18 |
| → schacon joined | 03:20 |
| → zachinglis joined | 03:20 |
| ← zachinglis left | 03:20 |
| ← lima left | 03:23 |
| ← schacon__ left | 03:24 |
| ← mw|out left | 03:26 |
| ← schacon_ left | 03:26 |
| ← bobmcw left | 03:26 |
| ← Starnestommy left | 03:27 |
| → offby1` joined | 03:31 |
| → joshbuddy joined | 03:33 |
| ← rafaelbandeira3 left | 03:35 |
| ← loincloth left | 03:36 |
| ← offby1 left | 03:39 |
| offby1` → offby1 | 03:39 |
| ← schacon left | 03:39 |
| → Flathead joined | 03:40 |
| → schacon joined | 03:43 |
| ← jeukku left | 03:50 |
| ← kanru left | 03:50 |
| ← schacon left | 03:51 |
| neurodamage|away → neurodamage | 03:55 |
| → kanru joined | 03:56 |
| → jackdempsey joined | 03:58 |
| ← joshbuddy left | 03:59 |
| ← madewokherd left | 04:00 |
| → imyousuf joined | 04:00 |
| ← narflekw left | 04:01 |
| ← jackdempsey left | 04:03 |
| → zjason_ joined | 04:04 |
| ← statim left | 04:05 |
| → jackdempsey joined | 04:05 |
| ← kef left | 04:11 |
| → kef joined | 04:12 |
| ← russells left | 04:16 |
| → pumpkin joined | 04:18 |
| ← tchan left | 04:18 |
| ← zjason left | 04:19 |
| → tongueroo joined | 04:19 |
| → rdavila joined | 04:22 |
| → priidu joined | 04: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 worked | 04: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 again | 04:27 |
| ← tjafk1 left | 04:28 |
| → tjafk2 joined | 04:28 |
|
offby1
| bet it was ilari, Mikachu, or Tv | 04:28 |
|
pumpkin
| hmm nope | 04:28 |
|
| anyway, I'll describe what's going on and see if anyone has any thoughts | 04:28 |
| ← jackdempsey left | 04:28 |
|
offby1
| between them they've probably accounted for 85% of my enlightenment in this channel | 04:28 |
|
pumpkin
| :) | 04:29 |
| → UVSoft joined | 04:29 |
|
UVSoft
| hi | 04:29 |
|
pumpkin
| well, I have a project that relies on a modified version of another open source project that's hosted on github | 04: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 mine | 04:29 |
|
| and be able to update from their repo | 04:30 |
|
| and keep it all in my repo, as the changes make no sense on their own | 04:30 |
|
| so what I remember doing is setting up a self-referential git submodule | 04:30 |
|
| after checking their project out into one of my branches | 04: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 that | 04:31 |
|
offby1
| sounds complex | 04:31 |
| → mario__ joined | 04: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 upstream | 04:32 |
| ← pygi left | 04:32 |
|
pumpkin
| well, I need to track it in sync with my "enclosing" project | 04: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 want | 04:32 |
|
pumpkin
| which is where the submodule came in | 04:32 |
|
offby1
| hmm | 04:32 |
|
pumpkin
| offby1: i.e., it would be nice to have a consistent history for the changes to the subproject, too | 04: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 sure | 04:33 |
|
MaddHatter
| UVSoft: you probably want to change config.autocrlf or whatever | 04:33 |
|
pumpkin
| I'm not that good with git yet | 04:33 |
|
| I haven't ventured outside of my comfort zone much | 04: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
| ah | 04:33 |
|
UVSoft
| MaddHatter, i have to store my files in dos format | 04:34 |
|
MaddHatter
| then you don't want git converting them to *nix format, so disable the autocrlf conversion | 04: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
| thanks | 04: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 content | 04: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 default | 04:37 |
|
pumpkin
| well the point is | 04:37 |
|
| offby1: I'll make this more concrete, sorry | 04:37 |
|
| I'm making a ruby interpreter plugin for a program | 04:37 |
|
offby1
| just don't drop it on my foot | 04:37 |
|
| sure sure | 04:37 |
|
pumpkin
| and I need to make some changes to ruby for it, but I also have code of my own | 04:37 |
|
offby1
| sure sure | 04:37 |
|
pumpkin
| so my own code is already in a git repo | 04:38 |
|
offby1
| hmm | 04:38 |
|
pumpkin
| I'd like to check ruby out into that git repo | 04:38 |
|
| make my changes | 04: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
| yeah | 04:38 |
|
offby1
| that sounds dubious. | 04:38 |
|
pumpkin
| because they don't make sense individually | 04:38 |
|
offby1
| I think if it were me I _would_ keep them separate | 04:38 |
|
pumpkin
| like, my hacked-up ruby has no point on its own | 04:38 |
|
offby1
| yeah | 04:38 |
|
pumpkin
| I'm going to make tie-ins with the plugin | 04: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__ joined | 04:39 |
|
pumpkin
| well, adding ruby as a subdir of mine | 04:39 |
|
| means I can't update without pain | 04:39 |
|
| unless I clone it into my other repo | 04:40 |
|
| which then means I'm tracking a .git folder with git | 04:40 |
|
| which feels dirty, but maybe it's not uncommon? | 04:40 |
| ← softdrink left | 04:40 |
| ← catbot_ left | 04:40 |
|
offby1
| doesn't sound like the right thing. | 04:40 |
|
pumpkin
| adding my thing as a subdir from ruby just feels wrong | 04:40 |
| ← EmilMedve left | 04:40 |
|
offby1
| I suggest you try it anyway :) | 04:40 |
|
pumpkin
| hmm | 04: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 ^Ms | 04:41 |
| ← k776 left | 04:41 |
|
pumpkin
| offby1: the solution this other person whose name I can't remember suggested worked nicely in exactly this kind of situation | 04: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 up | 04:41 |
|
UVSoft
| MaddHatter, i want them in the file, but not in the output of git commands | 04:41 |
| → jeukku joined | 04:42 |
|
UVSoft
| it's rather annoying you know.... | 04:42 |
|
MaddHatter
| well, then you _do_ want crlf conversion | 04:43 |
|
| or no... you want the opposite of crlf conversion | 04:43 |
|
| the only thing that comes to mind is to disable crlf conversion and use a pre-commit hook to add back the ^Ms | 04:45 |
|
| (i.e. call unix2dos before the commit) | 04:45 |
| → SRabbelier joined | 04: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 that | 04:46 |
|
MaddHatter
| it's possible the files actually have \r\r\n in them, too | 04: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 ^M | 04:47 |
|
MaddHatter
| hey, if it were a Mac, it'd be \n\r | 04:47 |
|
| offby1 's head spins | 04:47 |
|
offby1
| WHY CAN'T WE ALL JUST GET ALONG?! | 04:47 |
|
MaddHatter
| UVSoft: yes, but you said you had to store them with ^M | 04:47 |
| pumpkin → pumpkin|out | 04:47 |
|
UVSoft
| MaddHatter, sorry it was my fault, i ment store in my working copy of the repo | 04:48 |
|
MaddHatter
| ah, well then your problem is solved :-) | 04:48 |
| → jackdempsey_ joined | 04:48 |
|
UVSoft
| thanks! | 04:48 |
|
pumpkin|out
| MaddHatter: no it wouldn't be :P | 04:49 |
|
| not for the last decade, anyway | 04:49 |
|
MaddHatter
| well, I meant Mac as in Mac, not Mac as in OSX | 04:51 |
|
| it's like Sun and version numbering | 04:52 |
|
| you'd think a major company like that could, between them all, figure how to count | 04:52 |
|
pumpkin|out
| :) | 04:53 |
| → sgrimm joined | 04:54 |
| ← UVSoft left | 04:56 |
| ← eikonos left | 04:57 |
| ← niki left | 04:57 |
| → xinming_ joined | 04:58 |
| mario__ → pygi | 04:59 |
| ← catbot__ left | 05:00 |
| → catbot__ joined | 05:00 |
| → statim joined | 05:01 |
| → mbuf joined | 05:03 |
| ← xinming left | 05:11 |
| ← bobesponja left | 05:13 |
| ← tongueroo left | 05:20 |
| → langenberg joined | 05:21 |
| ← rdavila left | 05:25 |
| ← foca left | 05:31 |
| ← langenberg left | 05:32 |
| → loincloth joined | 05:32 |
| ← selckin left | 05:34 |
| → gittish joined | 05:35 |
| → theCarpenter joined | 05:36 |
| ← LostInTheWorld left | 05:36 |
|
theCarpenter
| i have a desktop and a laptop; i want to be able to code on both of them | 05:36 |
|
offby1
| aw, that's unrealistic | 05:37 |
|
| don't be greedy | 05:37 |
|
| offby1 whistles innocently | 05: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, sure | 05:38 |
|
| "git push" would work | 05:38 |
|
| you'd create a bare repository on one box (presumably the desktop) | 05:38 |
| → tvachon joined | 05: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 suggesting | 05:39 |
| ← loincloth left | 05:39 |
| ← tvachon left | 05: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, no | 05:40 |
|
theCarpenter
| hm okay.. should be easy enough to atuomate | 05: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 sure | 05:40 |
| ← clamothe left | 05:41 |
|
offby1
| if all you want is automatic backup, git might be overkill. | 05:41 |
|
| unison or rsync or something might make more sense | 05:41 |
|
theCarpenter
| well i mean i might want to work on one machine at one point and another machine at another | 05:41 |
| → clamothe joined | 05: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 joined | 05: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 joined | 05:42 |
|
offby1
| the boxes are in a star topology: they all communicate via the central bare repository. | 05:42 |
| ← qrush left | 05:44 |
| → neunon joined | 05:45 |
|
theCarpenter
| so what about creating the repos themselves | 05:47 |
| → dewogalang joined | 05:54 |
| ← gittish left | 05:55 |
| nn → _nn | 05:55 |
| → mbuf` joined | 05:57 |
| ← mbuf left | 05:57 |
| → namenlos joined | 06:01 |
| ← priidu left | 06:05 |
| → FunkeeMonk joined | 06:06 |
| ← kyofel left | 06:06 |
| → russells joined | 06:07 |
| → harinath joined | 06:12 |
|
MaddHatter
| theCarpenter: just git init, git commit, and git clone | 06:13 |
| _nn → nn | 06: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 commit | 06:13 |
|
theCarpenter
| but is it possible to create a whole new repo on a diff machine like that | 06: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/machine | 06:14 |
|
pumpkin|out
| I think I have my epic git fu working | 06:14 |
|
theCarpenter
| i can push whole repos? | 06:14 |
|
pumpkin|out
| that's what you push | 06:14 |
|
| or branches | 06: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 to | 06:15 |
|
MaddHatter
| yes, you can push branches that don't exist on the remote repository | 06:15 |
|
| you can use --all to push everything | 06: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 later | 06:15 |
|
| okay | 06:15 |
|
pumpkin|out
| you'd typically init a bare repo on the other side and push to that | 06:15 |
|
theCarpenter
| okay | 06:15 |
|
pumpkin|out
| or just use github :P | 06:15 |
|
MaddHatter
| you need to put the bare repository somewhere that's accessible to every place where you want to actually do work | 06:17 |
|
| Call that place A. | 06:17 |
| → deavid joined | 06: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 elsewhere | 06:18 |
|
| and A and B can both be separate directories on your desktop computer if you like | 06:18 |
| → theCarpenter4 joined | 06:22 |
| ← JimmyB_ left | 06:26 |
| → loiseau joined | 06:27 |
| ← helge left | 06:29 |
| → helge joined | 06:29 |
|
pumpkin|out
| hmm | 06:33 |
|
| how can I make sure a remote in my .git/config stays around when I push it? | 06:33 |
| ← dewogalang left | 06:34 |
|
thiago_home
| git push doesn't modify .git/config | 06:34 |
| → bentob0x joined | 06:35 |
| → reel_ joined | 06:35 |
|
pumpkin|out
| I mean | 06:36 |
|
| oh I see | 06: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 there | 06:37 |
|
| se git push --mirror | 06:38 |
|
| *see | 06:38 |
|
pumpkin|out
| thanks, I'll check it out | 06:38 |
| ← theCarpenter left | 06:41 |
| → rtomayko_ joined | 06:41 |
| ← johan-s left | 06:42 |
| ← imyousuf left | 06:43 |
| ← bronson left | 06: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 repo | 06:51 |
|
| is that not possible? | 06:51 |
|
Pieter
| no | 06:51 |
|
pumpkin|out
| hmm, fair enough I guess | 06:51 |
|
| not a huge deal | 06:51 |
| → imyousuf joined | 06:53 |
| ← schlort left | 06:54 |
| → schlort joined | 06:54 |
| ← ph^ left | 06:56 |
| pumpkin|out → pumpkin|closet | 06:57 |
| → koke joined | 06:59 |
| → Weaselweb joined | 06:59 |
| → drizzd joined | 07:01 |
| → aiur joined | 07:06 |
| → bronson joined | 07:07 |
| → priidu joined | 07:10 |
| → johan-s joined | 07:11 |
| → BabelO joined | 07:13 |
| → rraasch joined | 07:13 |
| ← CodeOfficer left | 07:14 |
| ← bentob0x left | 07:16 |
| ← archis left | 07:16 |
| → ph^ joined | 07:18 |
| → vintrepid joined | 07:18 |
| ← kef left | 07:21 |
| → charon joined | 07:21 |
| → KelebekTurkce413 joined | 07:25 |
| ← neunon left | 07:25 |
| → tritz joined | 07:26 |
| → gbucher joined | 07:29 |
| pumpkin|closet → pumpkin | 07:33 |
| ← KelebekTurkce413 left | 07:34 |
| ← ben_h left | 07:36 |
| ← Flathead left | 07:37 |
| → Flathead joined | 07:37 |
| ← tarbo left | 07:40 |
| ← schlort left | 07:46 |
| → schlort joined | 07:46 |
| → nud_ joined | 07:48 |
| ← ajonat left | 07:48 |
| → kef joined | 07:49 |
| → pgokeeffe_ joined | 07:51 |
| → reel__ joined | 07:54 |
| ← priidu left | 07:59 |
| → priidu joined | 08:02 |
|
catbot__
| how to fix such an error, as below | 08:06 |
|
| $ git add README.txt | 08:06 |
|
| error: unable to create temporary sha1 filename .git/objects/b1: File exists | 08:06 |
|
| error: README.txt: failed to insert into database | 08:06 |
|
| error: unable to index file README.txt | 08:06 |
|
| fatal: adding files failed | 08:06 |
| ← kef left | 08:07 |
| → drizzd_ joined | 08:08 |
|
catbot__
| anybody can give a hand? | 08:08 |
|
seanius
| hmm... some kind of wierd evil twin issue? | 08:09 |
| ← jello left | 08:10 |
| → christophsturm joined | 08:10 |
| ← reel_ left | 08:11 |
| → drizzd__ joined | 08:12 |
| → markkalderon joined | 08:13 |
| → Zarin joined | 08:13 |
| → capisce_ joined | 08:13 |
| ← gbucher left | 08:16 |
| ← capisce left | 08:17 |
| → drizzd___ joined | 08:21 |
| ← nn left | 08:22 |
| ← drizzd left | 08:23 |
| → nn joined | 08:24 |
| → reithi joined | 08:24 |
| ← aiur left | 08:25 |
| → aiur joined | 08:26 |
| → kyofel joined | 08:27 |
| ← drizzd_ left | 08:27 |
| ← rtomayko_ left | 08:29 |
| → drizzd joined | 08:29 |
| nn → _nn | 08:30 |
| ← markkalderon left | 08:31 |
| → jmesnil joined | 08:31 |
| ← drizzd__ left | 08:37 |
| ← theCarpenter4 left | 08:40 |
| ← drizzd___ left | 08:40 |
| ← priidu left | 08:42 |
| → shodges joined | 08:42 |
| ← shodges left | 08:42 |
| → priidu joined | 08:43 |
| ← marj left | 08:44 |
| → marj joined | 08:45 |
| ← pumpkin left | 08:46 |
| ← mithro left | 08:47 |
| ← Flathead left | 08:48 |
| → Fullmoon joined | 08:53 |
| → archis joined | 08:53 |
| ← Fullmoon left | 08:53 |
| ← reel__ left | 08:53 |
| → reel_ joined | 08:53 |
| ← reithi left | 08:57 |
| → radarek joined | 08:58 |
| → hurikhan|Work joined | 09:01 |
| ← koke left | 09:01 |
| → ereslibre joined | 09:01 |
|
charon
| catbot__: check permissions on .git/objects | 09:02 |
| → mcella joined | 09:03 |
| → not-xjjk joined | 09:05 |
| → gbucher joined | 09:11 |
| → Flathead joined | 09:13 |
| → deavid1 joined | 09:14 |
| ← ^conner left | 09:14 |
| → chris2 joined | 09:16 |
| ← reel_ left | 09:16 |
| ← pgokeeffe_ left | 09:16 |
| ← BabelO left | 09:16 |
| ← deavid left | 09:16 |
| ← thiago_home left | 09:16 |
| ← rphillips left | 09:16 |
| ← clairvy left | 09:16 |
| ← werdnativ left | 09:16 |
| ← Eridius left | 09:16 |
| ← uggabooh left | 09:16 |
| ← Tv left | 09:16 |
| ← Oompa left | 09:16 |
| ← jettero left | 09:16 |
| ← daniel-w left | 09:16 |
| ← com4 left | 09:16 |
| ← jeffpc left | 09:16 |
| → RaceCondition joined | 09:17 |
| → BabelO joined | 09:17 |
| ← gbucher left | 09:17 |
| ← xjjk left | 09:17 |
| → gbucher joined | 09:17 |
| → thiago joined | 09:18 |
| → jeffpc joined | 09:18 |
| ← Zarin left | 09:18 |
| → fujin joined | 09:20 |
| → reel_ joined | 09:21 |
| → pgokeeffe_ joined | 09:21 |
| → thiago_home joined | 09:21 |
| → rphillips joined | 09:21 |
| → clairvy joined | 09:21 |
| → werdnativ joined | 09:21 |
| → Eridius joined | 09:21 |
| → uggabooh joined | 09:21 |
| → com4 joined | 09:21 |
| → Tv joined | 09:21 |
| → Oompa joined | 09:21 |
| → jettero joined | 09:21 |
| → daniel-w joined | 09:21 |
| → serp joined | 09:21 |
| → stick joined | 09:21 |
| → andres joined | 09:21 |
| → tmm1 joined | 09:21 |
| → johannes joined | 09:21 |
| → spool joined | 09:21 |
| ← serp left | 09:21 |
| ← johannes left | 09:21 |
| → serp_ joined | 09:21 |
| → johannes joined | 09:21 |
| ← com4 left | 09:22 |
| ← rphillips left | 09:22 |
| → com4 joined | 09:22 |
| → rphillips joined | 09:22 |
| ← tmm1 left | 09:23 |
| → Sho_ joined | 09: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 joined | 09:24 |
|
spool
| the canonical example is with a binary blob, for which diffs don't really make much sense | 09:24 |
|
doener
| binary blobs are just marked as unmerged IIRC | 09:25 |
|
| there are no conflict markers added | 09:25 |
|
| you're then free to replace the file with whatever version suits your needs | 09:25 |
| → cilly joined | 09:25 |
|
spool
| mmmm... I think my files isn't quite a binary (I used that as an example) | 09:25 |
|
| it's a sqlite database | 09:26 |
|
doener
| you can use an attribute to explicitly mark it as binary | 09:26 |
|
spool
| oh really? how does that work? | 09:26 |
|
doener
| add a line like "filenameglob merge=binary" to a .gitattributes file | 09:27 |
| → rdavila joined | 09:28 |
|
uggabooh
| anyway, you can always get the proper version with "git checkout correctcommit file" | 09:28 |
| → mediogre joined | 09:28 |
|
doener
| and probably also "-diff", so that it's treated as binary for diff as well | 09:28 |
|
spool
| is .gitattributes placed in the root like .gitignore? | 09:28 |
| ← diask left | 09:29 |
|
spool
| uggabooh: is correctcommit the hash of the right version? | 09:29 |
| ← rdavila left | 09: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 much | 09: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 itself | 09:30 |
|
spool
| doener: cool ok right | 09: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 conflict | 09:30 |
| ← \ask-_ left | 09:31 |
|
spool
| doener: so what I wanted was to just accept all the recent changes | 09:31 |
|
doener
| most likely, you did actually change something | 09:31 |
|
spool
| doener: would git checkout hash . have sorted it? | 09:31 |
|
doener
| no | 09:31 |
|
| at least not in a generally sane way | 09:32 |
|
spool
| doener: :( I ended up just recloning | 09:32 |
|
| doener: I mean, the weird thing is that if I did change anything, it certainly wasn't in the files that were conflicting | 09:32 |
| ← imyousuf left | 09: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 forth | 09:33 |
|
spool
| doener: yeah I'd rather not do that. Recloning makes more sense in those cases | 09: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 likely | 09: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 thing | 09:35 |
|
doener
| if you have no local commits that you care about, just reset --hard to the remote tracking branch | 09:35 |
|
spool
| doener: ahhhh that's what that's for | 09:36 |
|
| doener: that command has always terrified me | 09:36 |
|
doener
| otherwise, you need to rebase your local commits onto the remote tracking branch, which can be painful | 09:36 |
| → Ademan joined | 09:36 |
|
doener
| how so? Even if you mis-use it, the reflog is there to save you | 09: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 up | 09:37 |
|
| doener: '--hard' has fairly dire connotations, purely on the basis of its meaning | 09: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 joined | 09:39 |
| ← RaceCondition left | 09:39 |
|
spool
| woah ok, I had no idea you could do stuff like that | 09:39 |
| → felipe joined | 09: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 try | 09:40 |
|
doener
| yep | 09:40 |
|
| nothing to be afraid about... the reflog saves you, and you can always just make a copy of your whole repo and play around | 09:41 |
|
spool
| does it work like mergetool? I think I tried it once I got quite confused. | 09:41 |
|
doener
| not at all | 09:41 |
| → ph^_ joined | 09:42 |
|
doener
| http://blog.madism.org/index.php/2007/09/09/138-git-awsome-ness-git-rebase-interactive | 09:42 |
| → reithi joined | 09:42 |
|
spool
| is that your blog? | 09:42 |
|
doener
| no | 09:42 |
|
| doener doesn't have anything worthwhile to annoy the world with in a blog | 09: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 it | 09:44 |
|
Araneidae
| Yep, I was guessing that was where I would start | 09:44 |
|
doener
| Araneidae: change the first line (should be the commit you want to split) from "pick" to "edit", save, quit | 09:44 |
|
Araneidae
| ok | 09:44 |
|
doener
| Araneidae: that will bring you to a state where HEAD point to that commit | 09:44 |
|
| then do the "git reset HEAD^; git add; git commit; git add; git commit" dance | 09: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
| Cool | 09: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 stuff | 09: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 joined | 09:50 |
|
doener
| spool: we have logs of this channel :-) http://colabti.org/irclogger//irclogger_logs/git | 09: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 anyway | 09: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 left | 09:54 |
|
doener
| spool: see "Defining a custom diff driver" in gitattributes(5) as a starting point | 09:54 |
|
Mikachu
| spool: you already know about git diff --color-words i guess? | 09:54 |
|
spool
| doener: awesome, thanks | 09:55 |
| → koke joined | 09:55 |
|
doener
| Mikachu: ah, good point :) didn't know what dwdiff is | 09:55 |
|
spool
| Mikachu: no I don't actually | 09:55 |
|
| Working with a latex manuscript can be tricky | 09: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 think | 09: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-words | 09:57 |
|
spool
| Mikachu: yeah, these are reasons why I wanted to use it | 09: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 left | 10:01 |
|
spool
| Mikachu: do you know if dwdiff is the best program for diffing latex? Any other suggestions? | 10:03 |
|
Mikachu
| no idea | 10: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 left | 10:08 |
| → ramontayag joined | 10: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 help | 10:14 |
| → parasti joined | 10:14 |
| → arafangion joined | 10: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 faster | 10:22 |
|
up_the_irons
| arafangion: oh man, it uses 1G? wow | 10:22 |
| ← Flathead left | 10:22 |
|
uggabooh
| arafangion: what's the change? | 10:24 |
|
arafangion
| uggabooh, Shall I put the whole file onto rafb.net? | 10:24 |
| ← rraasch left | 10:24 |
|
arafangion
| up_the_irons, For sure. :) | 10:24 |
|
| torarne <3 rebase -i | 10:24 |
|
uggabooh
| arafangion: well, the diff if it's tiny | 10: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.html | 10: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| joined | 10:34 |
|
arafangion
| Damn, how'd that tab get in there(!) Fixed on _my_ machine, now. :) | 10:36 |
| → elmex joined | 10:36 |
|
Tv
| ramontayag: git tracks the whole tree, not individual files | 10: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", basically | 10: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 way | 10: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 file | 10:41 |
| → bentob0x joined | 10: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 understand | 10:43 |
| → Beket joined | 10:47 |
| → langenberg joined | 10:49 |
| → mbuf`` joined | 10:52 |
| ← cilly left | 10:54 |
| ← mediogre left | 10:55 |
| → clamothe_ joined | 10:56 |
| ← clamothe left | 10:57 |
| → warlock_mza joined | 10:59 |
| ← catbot__ left | 10:59 |
| ← gbucher left | 11:00 |
| ← mbuf`` left | 11:00 |
| → clamothe joined | 11:01 |
| → mbuf joined | 11:01 |
|
uggabooh
| arafangion: I am amazed that this saves a lot of memory | 11:01 |
| → arafangion_ joined | 11:01 |
| → mediogre joined | 11:02 |
|
GarethAdams
| I need to find out changes that have been made to the phrase "Pay recommendation" anywhere in my repository | 11:03 |
|
| any file, any branch | 11:03 |
|
| what's the easiest way to do it? | 11:03 |
|
doener
| git log -p -S'Pay recommendation' --all | 11:03 |
| ← arafangion left | 11:03 |
|
GarethAdams
| aha, didn't spot -S | 11:04 |
|
| :) | 11:04 |
| ← koke left | 11:04 |
|
GarethAdams
| i'll work most of these options out one day | 11: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 enough | 11: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 :P | 11:07 |
| ← mbuf` left | 11: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 :-p | 11: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 that | 11:12 |
| ← capisce_ left | 11:13 |
| ← gretchen left | 11:13 |
|
uggabooh
| arafangion_: are arrays really that memory expensive in Python? | 11:14 |
| ← clamothe_ left | 11:15 |
| → capisce joined | 11: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 history | 11:17 |
| → clamothe_ joined | 11: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_ left | 11:18 |
| → crab joined | 11:19 |
|
xinming_
| Tv: So, do you mean, If you switched to git, there is no way to go back? >_< | 11:19 |
| → EmilMedve joined | 11:19 |
|
arafangion_
| xinming_, Why would you /want/ to go back? | 11:19 |
| → clamothe_ joined | 11: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 standards | 11:19 |
|
crab
| oh, no. reset --hard won't work in a bare repository. | 11:19 |
|
Tv
| crab: maybe you want git clone --mirror | 11:20 |
| → cilly joined | 11:21 |
|
crab
| Tv: no, this is a temporary thing. | 11:21 |
| ← clamothe_ left | 11: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 sense | 11: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 workflow | 11:23 |
| → mugdha1 joined | 11:23 |
|
w00t
| what sort of stuff have you found difficult? | 11:24 |
|
GarethAdams
| xinming_: actually, git-archive is better for creating snapshots | 11: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 normally | 11:24 |
|
| and significantly more capable | 11:24 |
|
w00t
| spb: noodle | 11:24 |
|
mugdha1
| We're dealing with a 13 GiB repository here and don't want to lose data. | 11:24 |
|
Tv
| GarethAdams: snapshot != backup | 11:24 |
|
mugdha1
| The repository has a lot of binary image data. | 11:24 |
|
xinming_
| GarethAdams: I want the history also being cloned | 11:25 |
|
GarethAdams
| fair enough | 11: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 that | 11:25 |
|
| xinming_: that is in general impossible because of svn limitations | 11:25 |
|
parasti
| mugdha1: might be worth asking in the mailing list | 11:26 |
| ← clamothe left | 11: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 left | 11:26 |
|
Tv
| mugdha1: you can often restore the corrupted object(s) from another clone | 11: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 joined | 11:26 |
|
Tv
| mugdha1: you can just plop them in .git/objects | 11: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 has | 11:27 |
|
crab
| Tv: that's ok, right? | 11:27 |
|
Tv
| no it's not | 11:27 |
|
| he has corrupted objects he needs to replace with good copies | 11: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 quoting | 11:28 |
|
| crab: you can make a git clone --mirror of a small repo and see how it configures it | 11:29 |
|
| mugdha1: not designed for that | 11:29 |
| ← chris2 left | 11:29 |
|
doener
| mugdha1: http://git.or.cz/gitwiki/GitFaq#head-ac11406480d09e2df98588e800e41b7256602074 | 11:29 |
|
mugdha1
| Tv: I see. What would you suggest instead? We'd like history tracked | 11:29 |
|
crab
| +*:* is an invalid refspec. too bad. | 11:29 |
|
Tv
| crab: see what --mirror does | 11: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 is | 11:30 |
| → bcarlyon|laptop joined | 11:30 |
| ← andreaja left | 11: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 left | 11: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 that | 11:32 |
| → dwave joined | 11:32 |
| → powr-toc joined | 11:34 |
| ← jmesnil left | 11: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 joined | 11:39 |
|
charon
| powr-toc: look in man git-rebase for --onto examples | 11:40 |
|
Gitbot
| powr-toc: the git-rebase manpage can be found at http://git.or.cz/man/git-rebase | 11:40 |
| → whee joined | 11:40 |
|
powr-toc
| charon: cheers, I thought that might do it... | 11:40 |
| → ciaran joined | 11:44 |
| → Beket- joined | 11: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 details | 11:45 |
| ← morphir left | 11: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 file | 11: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 left | 11: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 size | 11: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, etc | 11: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 directory | 11:49 |
|
random8r
| yeah, then you gitignore the folder | 11:49 |
|
| DUH | 11:49 |
|
| that's exactly what I just said. | 11:49 |
|
Tv
| random8r: you keep misunderstanding | 11:49 |
|
| oh well | 11:49 |
|
mugdha1
| just git add wherever/ *after* touch wherever/readme.text | 11:49 |
|
random8r
| so explain it | 11:49 |
| bcarlyon|laptop → BarryCarlyon | 11:49 |
|
doener
| touch directory/.gitignore; git add directory; | 11:50 |
|
random8r
| tv - git ignores empty folders, right...? | 11:50 |
|
mugdha1
| yeah | 11:50 |
|
Tv
| random8r: but it's not empty if there's that text file in it | 11:50 |
| → mdalessio joined | 11: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 different | 11:51 |
|
random8r
| NO | 11:51 |
|
| I said add a text file to it | 11:51 |
|
| then add the text file to .gitignore | 11:51 |
|
Tv
| oh man | 11:51 |
|
| Tv gives up | 11:51 |
|
random8r
| <shrug> whatever. | 11:51 |
|
| there's a folder let's call it hello | 11:52 |
| → jonkristian joined | 11:52 |
|
random8r
| it is empty | 11:52 |
|
| so I add a file to it called empty_text_file.txt | 11:52 |
|
| then I add the folder | 11:52 |
| → tud joined | 11:52 |
|
random8r
| (ie git add hello) | 11:52 |
|
| then I edit my .gitignore file to include empty_text_file.txt | 11:52 |
|
bremner
| random8r: too late | 11:52 |
|
random8r
| so it doesn't track changes. | 11:52 |
|
fujin
| naw man.. you want to have the file in there, _not_ ignoredd | 11:53 |
|
| so that it dont delete the dir | 11:53 |
|
Tv
| random8r: that's not the way git works | 11:53 |
|
random8r
| oh well it works like that for me | 11:53 |
|
| <shrug> I must have a weird version or something | 11:53 |
|
fujin
| naw you're crazy | 11: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 true | 11:53 |
|
parasti
| random8r: when you added hello, you also added everything in that directory | 11:53 |
|
random8r
| yup. | 11:53 |
| → mjc joined | 11: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 files | 11: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 C | 11:55 |
|
random8r
| good stuff | 11:55 |
| → merlin83 joined | 11:55 |
| → Catfish_ joined | 11: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 home | 11:56 |
|
| The customer would like to have the "official" repository at their site but form outside is unreachable | 11:56 |
|
| How can we do? thanks | 11:56 |
| ← mugdha1 left | 11:57 |
| ← whee left | 11:58 |
| → whee joined | 11: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 sincronized | 11:59 |
| → mugdha joined | 11:59 |
|
random8r
| no that's the solution. | 11:59 |
| ← mugdha left | 11:59 |
| ← deavid1 left | 11: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 reachable | 12:00 |
|
Tv
| crab: it's probably the most buggy push mechanism, and will likely stay the most buggy one, because it's so rarely used | 12: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 joined | 12:00 |
|
arafangion_
| (And also pull). | 12:00 |
|
Tv
| jonkristian: no command line args | 12:01 |
|
| arafangion_: you mean fetch, as it'd be a bare repo | 12: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 outside | 12:01 |
|
Tv
| jonkristian: post-update | 12:01 |
|
jonkristian
| Ok | 12: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 end | 12:02 |
|
tud
| tv: this is my question :) | 12:02 |
|
arafangion_
| Tv, I should probably shut up, as green as I am. :) | 12:02 |
| ← marj left | 12:03 |
| ← Catfish left | 12:04 |
|
jonkristian
| hmm, error: unable to create temporary sha1 filename ./objects/d5: File exists | 12:05 |
|
Tv
| jonkristian: check that you have read/write access | 12:06 |
| → smeevil joined | 12:06 |
|
smeevil
| hi all | 12: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 commits | 12:08 |
| → lorandi joined | 12: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 joined | 12:09 |
|
jonkristian
| Tv: now i get, 0cf4dd7..ccea67f master -> master | 12: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 :D | 12: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 repo | 12:10 |
|
| isn't there a way to avoid this? | 12:11 |
|
Tv
| retybok: git rev-parse --show-cdup | 12:11 |
|
| jonkristian: define a remote | 12:11 |
|
retybok
| Tv: thanks | 12: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 master | 12:11 |
|
Tv
| smeevil: this may or may not help: http://eagain.net/articles/git-for-computer-scientists/ | 12:12 |
|
smeevil
| jammyd: i see, thanks :D | 12:12 |
|
jonkristian
| Tv: i have [remote "origin"] url = ssh:// etc. in .git/config | 12:12 |
|
| ssh:// path to that repo | 12:12 |
|
smeevil
| Tv: ty :) that will help | 12:13 |
|
Tv
| jonkristian: are you on a branch other than master when running that pull? | 12:13 |
|
jonkristian
| git branch shows master | 12:13 |
|
| i havent really gotten around to play with branches yet | 12:13 |
|
Tv
| jonkristian: does "git pull origin" work? | 12:14 |
|
jonkristian
| ill try | 12:14 |
| → cbreak joined | 12:14 |
|
jonkristian
| no | 12:14 |
| → calin joined | 12:15 |
|
Tv
| jonkristian: so how does it fail, then? | 12:17 |
| → morphir joined | 12:17 |
|
Tv
| jonkristian: sounds like you have a different url in the config compared to typing it on the command line | 12:17 |
|
jonkristian
| hm | 12:18 |
| ← reel_ left | 12:18 |
|
jonkristian
| it's the same, it fails with this, http://rafb.net/p/tXf3gD21.html | 12:19 |
| ← iulian left | 12:19 |
|
Tv
| jonkristian: your config is missing [branch "master"] | 12:20 |
|
jonkristian
| and this is my config, http://rafb.net/p/L1LAdo76.html | 12:20 |
|
| hmm | 12:21 |
|
Tv
| jonkristian: compare that to what git does automatically if you clone something | 12:21 |
| → jasam joined | 12: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 left | 12:23 |
|
cehteh
| xinming_: you cant do that in git itself, but you gpg sign commit messages, not very well supported tough | 12:23 |
|
| one cant sign complete commit objects :/ | 12:24 |
|
Tv
| xinming_: first, define fake | 12:24 |
|
| xinming_: and think of me pushing changes made by you.. | 12:24 |
| → diask joined | 12:24 |
|
jonkristian
| Tv: thanks, got it working | 12:25 |
|
| i was missing the branch master stuff | 12: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 pushed | 12:26 |
|
xinming_
| Tv: I don't, But in log | 12:26 |
|
| git log | 12:26 |
| → joshbuddy joined | 12:26 |
|
Tv
| xinming_: you mean you created a commit with someone else as author/committer? | 12:26 |
|
Mikachu
| xinming_: yes, you can fake commits | 12:26 |
|
Tv
| xinming_: as i said, think of me pushing a commit made by you | 12:26 |
|
| xinming_: is that a fake or not? | 12:27 |
|
xinming_
| Tv: It's not. | 12:27 |
|
Tv
| xinming_: so how do you know | 12:27 |
| → giom joined | 12:27 |
|
Tv
| xinming_: you can't use the pusher identity, then.. | 12:27 |
| → bobmcw joined | 12:27 |
| ← joshbuddy left | 12:28 |
|
Tv
| signed tags on every commit? | 12:28 |
|
Mikachu
| Tv: well, you could allow changing author but not committer, maybe | 12:28 |
|
Tv
| Mikachu: that doesn't help me push his (unedited) commits | 12: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 commits | 12: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 fake | 12: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 merges | 12:30 |
|
Tv
| xinming_: svn is very different | 12:30 |
|
Mikachu
| cehteh: why? assuming the repo is centralized, the commits by other users are already in there | 12:30 |
|
cehteh
| mhm yes | 12:30 |
| → deavid joined | 12:30 |
|
Tv
| Mikachu: that's like "forced centralized" or something.. | 12:31 |
|
cehteh
| would work | 12:31 |
|
| Mikachu is speaking only theoretically, he doesn't think it's a good idea | 12: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_HEAD | 12:31 |
|
Tv
| jogla: in remote branches | 12: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 joined | 12:32 |
|
Mikachu
| xinming_: for the reasons given above | 12:32 |
|
jogla
| Ahh, thank you | 12:32 |
| ← mbuf left | 12: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 user | 12:34 |
|
Tv
| huh | 12:34 |
|
| gebi: svn only stores one string of author information, IIRC | 12:34 |
| → gbucher joined | 12: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 dcommit | 12: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 svn | 12:36 |
|
gebi
| you can ;) | 12:36 |
|
| you just have to allow it in the hooks | 12:36 |
|
| but yes, not per default | 12:37 |
|
Tv
| anyway, nobody on this channel has historically claimed to work on git-svn, really | 12:37 |
|
| try the mailing list | 12: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 you | 12:38 |
|
gebi
| Tv: ok thx :) | 12:38 |
| → juanjoc joined | 12:38 |
|
Mikachu
| well, normalperson is eric wong | 12:39 |
|
gebi
| ok | 12:44 |
|
| we do svn:author and svn:date adjustion for a better svn history here and no problems so far | 12:44 |
|
| though wrong svn:date could be problematic | 12:45 |
| → ebel joined | 12:47 |
| → Yuuhi joined | 12:50 |
| → tommorris joined | 12:50 |
| → koke joined | 12:50 |
| → johnw joined | 12:51 |
| ← jeukku left | 12:52 |
| ← pgokeeffe_ left | 12:52 |
| → naoshige joined | 12: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 repo | 12:53 |
|
| i know they need updates thats why i wanna pull but | 12: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 joined | 12: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 them | 12: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-b96f48bc9c925074be9f95c0fce69bcece5f6e73 | 12:55 |
|
naoshige
| wereHamster: but i haven't touched the repo since i first cloned it | 12:56 |
|
| nevrmind ill just clone it again | 12:59 |
| → mw|out joined | 12:59 |
|
naoshige
| thanks for the link Tv | 12: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 joined | 13:00 |
| ← naoshige left | 13:02 |
| ← tud left | 13:02 |
| → mithraic joined | 13: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 problem | 13: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_ joined | 13:04 |
| → kukks joined | 13:05 |
|
arafangion_
| gebi, Sounds like you've got a pretty good handle on things. | 13:05 |
| → mbuf joined | 13:06 |
| → etgryphon joined | 13: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 devs | 13:07 |
| ← kbingham left | 13: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 pain | 13:08 |
|
arafangion_
| gebi, Who's daily task is to merge the two svn repos, in addition to his workload. | 13:08 |
| mw|out → mw | 13: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 svn | 13: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) repo | 13:11 |
| ← mithraic left | 13: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 management | 13:12 |
|
arafangion_
| gebi, Perhaps not, but who is going to *trust* those student repos? ;) | 13:13 |
| _VVSiz_ → VVSiz | 13:13 |
|
arafangion_
| gebi, git lends itself rather well to such hierachial systems. | 13:13 |
|
gebi
| Tv: yea :) | 13:13 |
|
| arafangion_: i know | 13:13 |
| → JimmyB_ joined | 13:15 |
| → mithraic joined | 13:15 |
|
gebi
| arafangion_: but you can't force git on all those users (as it's a quite old project) | 13:15 |
| → krh joined | 13:15 |
| ← ciaran left | 13:15 |
| ← EmilMedve left | 13:16 |
| ← langenberg left | 13: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 joined | 13:17 |
| → langenberg joined | 13:17 |
|
Tv
| hey you could make them use git-cvsserver ;) | 13:18 |
| ← johnw left | 13:18 |
| → joshbuddy joined | 13:18 |
|
gebi
| Tv: lol yea :), we have even a few ms source "safe" users :D | 13:21 |
|
| arafangion_: the internal users are not all students though ;) | 13:21 |
| ← jeukku left | 13:25 |
| → vbabiy joined | 13: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 joined | 13:27 |
|
arafangion_
| gebi, ie, no (user-visible) local branching, simple merging, that kind of thing. | 13:28 |
|
gebi
| thats why so many userse choose mercurial | 13:28 |
| ← reithi left | 13:29 |
| → Zarin joined | 13:29 |
|
arafangion_
| gebi, Why didn't you? | 13:30 |
| → andrewtaylor_ joined | 13:30 |
| ← jeukku left | 13:30 |
|
gebi
| i don't want another constraint scm | 13:30 |
| → softdrink joined | 13:31 |
| → tarbo joined | 13: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 left | 13:33 |
| ← Sho_ left | 13:33 |
|
gebi
| arafangion_: heh | 13: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:master | 13: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 + checkout | 13:34 |
|
| pull = fetch + merge | 13:34 |
|
gebi
| andrewtaylor_: pull is fetch+merge, fetch is fetch and clone is init+fetch+(checkout) | 13:34 |
|
| arafangion_: omg, no | 13:35 |
|
andrewtaylor_
| gebi: perfect sense :) | 13:35 |
|
gebi
| fetch transferes objects and refs from another repository to your current one | 13:35 |
|
arafangion_
| gebi, Well, once you DO need RCS capabililties... You need to read between my words. ;) | 13:35 |
| → mithro joined | 13:36 |
| ← mithraic left | 13:36 |
|
gebi
| arafangion_: nope, ways before | 13:36 |
|
| svn is way too fragil, slow and has no automatic backup | 13: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 left | 13:37 |
|
gebi
| just got a svn error yesterday (somethin like checksum mismatch, blablabla) just because one user comitted an ntfs alternate data stream | 13:38 |
| → softdrink joined | 13: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 pointless | 13: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 left | 13:40 |
|
gebi
| n8 | 13:40 |
| ← arafangion_ left | 13:40 |
| → mithraic joined | 13:43 |
| → gzy joined | 13:45 |
| → cannonball joined | 13:46 |
| → jas4711 joined | 13:48 |
| → grahal joined | 13:48 |
| → Beket joined | 13:53 |
| → EmilMedve joined | 13:55 |
| ← ph^ left | 13:56 |
| → jerbear joined | 13:57 |
| ← mithraic left | 13:58 |
| → johnw joined | 14:00 |
| ← johnw left | 14:00 |
| ← jackdempsey_ left | 14:00 |
| → johnw joined | 14:00 |
| → spearce joined | 14:01 |
| ← random8r left | 14:02 |
| ← namenlos left | 14:04 |
| → namenlos joined | 14:05 |
| → deavid joined | 14:08 |
| ← calin left | 14:10 |
| ← Beket- left | 14:11 |
|
jonkristian
| files created in .git/ are they all 644 and dirs 755? except for the stuff in hooks/ | 14:12 |
| ← andrewtaylor_ left | 14:12 |
|
RandalSchwartz
| git doesn't do metadata | 14:13 |
|
| that's for your installer | 14:13 |
|
Tv
| jonkristian: depends | 14:13 |
|
| davidfetter waves to Tv | 14:13 |
|
RandalSchwartz
| Oh oh. in .git | 14:13 |
|
| sorry | 14:13 |
|
| not in "git" :) | 14:14 |
| → foca joined | 14:14 |
|
| RandalSchwartz stares at diet coke and yells "work! work!" | 14:14 |
|
Mikachu
| jonkristian: objects/* is 444 i think | 14:14 |
|
jonkristian
| ouch, then i messed up | 14:14 |
|
Mikachu
| well, maybe not the info/packs file and some other things i didn't think of | 14:14 |
|
| davidfetter queues up "car wash" | 14:14 |
| ← not-xjjk left | 14: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 left | 14:16 |
| → olauzon joined | 14:16 |
|
Tv
| jonkristian: "shared".. | 14:17 |
|
jonkristian
| shared | 14:17 |
|
Tv
| jonkristian: or gitosis | 14:17 |
|
jonkristian
| oh, shared | 14:17 |
|
| hm | 14:17 |
| → zachinglis joined | 14:18 |
| ← smeevil left | 14:18 |
| ← retybok left | 14:18 |
| raz → razZz | 14:18 |
| razZz → raz | 14:18 |
|
jonkristian
| so i do git --shared=groupname inside the repository and chown -R root.groupname or something? | 14:19 |
| ← gzy left | 14:25 |
| ← tommorris left | 14:27 |
| ← blowery left | 14:28 |
| → blowery_ joined | 14:28 |
| → aroben joined | 14:28 |
| → blowery joined | 14:28 |
| ← namenlos left | 14:28 |
| → namenlos joined | 14:29 |
| → ijcd joined | 14:29 |
| → alb joined | 14:29 |
| ← nbrosnahan left | 14: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/templates | 14:36 |
|
mjc
| yarr | 14:36 |
| → schmir joined | 14:37 |
| mjc → the_good_pirate_ | 14:37 |
|
the_good_pirate_
| Bleh | 14:37 |
| the_good_pirate_ → pirate_mjc_yarr | 14:37 |
|
schmir
| hi all. how is the file called where I can artificially modify the revision graph? | 14:37 |
|
pirate_mjc_yarr
| wrong room :p | 14:37 |
|
| My bad | 14:37 |
|
krh
| schmir: are you thinking of git rebase -i perhaps? | 14:38 |
|
schmir
| krh: no | 14:38 |
|
doener
| schmir: grafts | 14:38 |
|
xinming_
| Is there any other way to update a bare repository except using git push. | 14:38 |
|
schmir
| doener: yes, thanks | 14:38 |
|
krh
| xinming_: something like GIT_DIR=repo.git git fetch | 14: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 repo | 14:41 |
| → tvachon joined | 14:42 |
| ← tvachon left | 14:42 |
| → iulian joined | 14:43 |
| ← ijcd left | 14:44 |
| → earcar joined | 14:44 |
| ← mbuf left | 14:45 |
| ← arun left | 14: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:master | 14:49 |
|
| to fetch the master branch from the remote repo into you local bare repot | 14:49 |
|
xinming_
| krh: thanks really | 14:51 |
|
krh
| xinming_: no problem | 14:51 |
| alb → albertito | 14:51 |
| → deskin joined | 14:55 |
| → stouset joined | 14:57 |
| ← earcar left | 14:58 |
| ← johan-s left | 14:59 |
| ← Beket left | 14:59 |
| → bdiego joined | 15:02 |
| → camwest joined | 15:03 |
| ← camwest left | 15:04 |
| → bobmcw joined | 15:05 |
| ← priidu left | 15:06 |
| → jackdempsey joined | 15:06 |
| → jpeeler joined | 15:07 |
| → ramontayag_ joined | 15:07 |
| ← schmir left | 15:07 |
| → sveajobb joined | 15:08 |
| ← jackdempsey left | 15:08 |
|
sveajobb
| is there a way to store a view in gitk ? I'm interested in looking at all available branches | 15:08 |
| → jackdempsey joined | 15:08 |
| ← uggabooh left | 15:08 |
|
charon
| you could make an alias that calls 'gitk --branches' | 15:10 |
| ← ramontayag left | 15:11 |
| ramontayag_ → ramontayag | 15:11 |
| → ijcd joined | 15:12 |
| → selckin joined | 15:13 |
| ← mediogre left | 15: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 left | 15:18 |
|
deskin
| or git-diff, git-shortlog, depending on what you want to know | 15:18 |
| ← ramontayag left | 15:19 |
| → advany joined | 15:21 |
| ← bobmcw left | 15:22 |
|
jogla
| deskin: Thank you | 15:25 |
| ← Hobbes left | 15:27 |
| → Hobbes joined | 15:27 |
| → svend joined | 15:27 |
| ← ijcd left | 15:29 |
| → ijcd joined | 15:30 |
| → hurikhan77 joined | 15:30 |
| ← koke left | 15:31 |
| → kumbayo joined | 15:32 |
| ← kanru left | 15:33 |
| → kowey joined | 15:38 |
| → LostInTheWorld joined | 15:38 |
| → jaalto joined | 15: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~1 | 15:41 |
| ← neurodamage left | 15:41 |
| ← hurikhan|Work left | 15: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: thanks | 15:42 |
| → LiamH joined | 15:42 |
|
jaalto
| vmiklos: It's stylistic issue, I hate ^, whereas HEAD~N is logical, when N can be increased as will | 15:43 |
| ← ijcd left | 15:43 |
|
jaalto
| at will | 15:43 |
|
vmiklos
| k | 15:43 |
| → ijcd joined | 15: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 joined | 15: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 commit | 15:47 |
| ← deavid left | 15:48 |
| → TML joined | 15:49 |
| → mjansen joined | 15: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 .gitignore | 15: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 joined | 15:51 |
|
mjansen
| but it won't tell me why. | 15:51 |
|
vuf
| TML: seems like it | 15:51 |
|
mjansen
| git -v rebase ... doesn't help either | 15:51 |
|
TML
| mjansen: "git svn rebase"? | 15:52 |
|
mjansen
| sorry ... forget that svn part. | 15:52 |
|
| same result | 15:53 |
|
doener
| mjansen: probably an untracked file would get overwritten or something like that | 15:53 |
|
| mjansen: IIRC git 1.6.0 and newer have a more verbose output | 15:54 |
|
mjansen
| when trying to checkout git-svn i get a warning for such a untracked file | 15:54 |
|
doener
| mjansen: try "git clean -nx" to see all untracked and ignored files | 15:54 |
|
| that's it then | 15:54 |
|
| get rid of the offending file | 15:54 |
| → Voker57 joined | 15:55 |
|
mjansen
| so a newer version will tell me what is wrong? | 15:55 |
|
| i have 1.5.6 | 15:55 |
| ← sgrimm left | 15:55 |
|
doener
| the "checkout" part of "git svn rebase" is silenced in older versions | 15: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 about | 15: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 archive | 15: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 left | 15:57 |
|
doener
| TML: one of those should work if the objects are truly unreachable through any ref or the reflog | 15:57 |
|
mjansen
| doener, thx | 15: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 required | 15:58 |
| ← deskin left | 15: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 11270 | 16:00 |
|
| Just trying to remove all variables :) | 16:00 |
| ← kef left | 16:03 |
| → kef joined | 16:05 |
| → bts- joined | 16:05 |
| → perezd88 joined | 16:06 |
| → ShadeHawk joined | 16:06 |
|
ShadeHawk
| Is logo used on http://git.or.cz/gitwiki/EclipsePlugin official JGit/EGit logo? | 16:07 |
| → bobmcw joined | 16:07 |
|
ShadeHawk
| Hmmm... it looks like it is, as http://www.jgit.org/ uses it too | 16:08 |
|
| Does StGit have logo or icon? | 16:11 |
|
| Or Guilt, or TopGit? | 16:12 |
| ← nud_ left | 16:13 |
| ← ijcd left | 16:15 |
| ← advany left | 16:18 |
| ← mjansen left | 16:20 |
| → capisce_ joined | 16:22 |
| → fanthomas joined | 16:22 |
| ← statim left | 16:22 |
| → kbingham joined | 16:22 |
| → statim joined | 16:22 |
| Hobbes → Guest58712 | 16:23 |
| → Hobbes`` joined | 16:23 |
| → koke joined | 16:24 |
| → sgrimm joined | 16:25 |
| → carrus85 joined | 16:26 |
| → Ryback_ joined | 16:27 |
| ← tritz left | 16:30 |
| ← svend left | 16:31 |
| ph^_ → ph^ | 16:36 |
| ← jmesnil left | 16:37 |
| → jmesnil joined | 16:37 |
| → pt joined | 16:38 |
| ← Guest58712 left | 16:38 |
| → ptah joined | 16:38 |
| ← ptah left | 16:38 |
| ← ebel left | 16:39 |
| Hobbes`` → Hobbes | 16:39 |
| ← ToxicFrog left | 16:40 |
| → ToxicFrog joined | 16:40 |
| ← ToxicFrog left | 16:40 |
|
ShadeHawk
| Hmmmm... it is silent here... | 16:41 |
| → ToxicFrog joined | 16:42 |
| ← capisce left | 16:42 |
| ← rmh3093 left | 16:42 |
|
| vuf bangs on stuff to make so noise | 16:42 |
| stouset → stouset|away | 16:44 |
| ← gbucher left | 16:46 |
| → schacon joined | 16:47 |
| ← koke left | 16:48 |
| ← hurikhan77 left | 16:48 |
| → kroimon joined | 16:51 |
| ← christophsturm left | 16:51 |
|
kroimon
| hey all | 16: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 version | 16: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 |
| crab → justacrab | 16:57 |
| ← MaddHatter left | 16: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 joined | 16:59 |
| ← olauzon left | 16:59 |
| → nbrosnahan joined | 17: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 push | 17:02 |
|
drizzd
| and you're aware of the fact that the post-update hook has to reside on the remote side | 17:02 |
|
jonkristian
| the change isn't updated in that folder, im using this, http://www.linuxworld.com/community/?q=node/3057 | 17:03 |
|
| drizzd: yes, it's in my repository hooks folder on the server | 17:03 |
| ← schacon left | 17:03 |
|
jonkristian
| but it was working before, except that i threw out some permission errors which i have fixed since | 17:04 |
|
Tv
| jonkristian: "it's not working" is not very useful for debugging | 17:04 |
|
vuf
| jonkristian: you can stuff in "echo test" to make sure that it is running at all | 17:04 |
|
drizzd
| and you also updated WORKDIR, of course | 17:04 |
| → amerine_ joined | 17:04 |
| → mithraic joined | 17:05 |
| ← amerine_ left | 17:05 |
| → amerine joined | 17:06 |
|
drizzd
| I wonder if there's a better way to get the working directory | 17:06 |
|
jonkristian
| yeah, sorry, ill try that | 17:06 |
| → mw-home joined | 17:08 |
| → MaddHatter joined | 17:08 |
|
jonkristian
| test is echo'ed during push, so it is running | 17:08 |
|
vuf
| drizzd: "unset GIT_DIR ; cd repo" is maybe cleaner | 17:08 |
| ← kroimon left | 17:09 |
| → kroimon joined | 17: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-info | 17:09 |
|
| drizzd: I think the hook tries to update one repo in the hook of a different repo | 17:10 |
|
drizzd
| I think it's for pushing into a non-bare repo | 17:10 |
|
Tv
| mw-home: branches have no parents | 17:10 |
|
jonkristian
| ah | 17: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 HEAD | 17: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 path | 17:12 |
|
vuf
| jonkristian: if it is bare, there is no work area to update | 17:12 |
|
drizzd
| jonkristian: if it's bare you don't need the hook at all | 17:12 |
|
ShadeHawk
| git rev-parse --show-prefix (or something like that)? | 17:12 |
| → qrush joined | 17:12 |
|
drizzd
| ShadeHawk: doesn't work from inside .git | 17: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 mind | 17: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 it | 17: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 fetch | 17: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-parse | 17:14 |
|
drizzd
| jonkristian: git reset only works from within a git directory | 17:14 |
|
| jonkristian: s/directory/repository | 17:14 |
|
mw-home
| Tv: ok, I also did git pull origin newbranch. That works too, right? | 17:14 |
| ← namenlos left | 17:14 |
| → ijcd_ joined | 17:14 |
|
| mw needs to configure his client to not match "mw-home" :S | 17:14 |
| mw-home → notmw | 17:15 |
|
Tv
| mw-home: for some definition of works; it does something else, which might or might not match what you wanted | 17:15 |
|
| mw: i usually advise people to avoid "git pull foo bar" | 17:15 |
| → schacon joined | 17:15 |
|
Tv
| mw: because many people don't realize that syntax does a merge, too | 17: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 bare | 17:15 |
|
drizzd
| jonkristian: but you can specify the working directory somehow, not sure if that works with a bare repo though | 17:16 |
|
mw
| Tv: i realize it, but maybe notmw doesn't! | 17:16 |
|
Tv
| mw: exactly. use git fetch | 17:16 |
|
notmw
| Tv: you like git fetch instead? That downloads the code, but keeps it somewhere else? | 17:16 |
|
Tv
| puts it in remote branches | 17: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 tutorial | 17:17 |
|
notmw
| Tv: yeah, I've read it, but I think I need to re-read it. thanks for the hel. | 17:17 |
|
| p | 17:17 |
|
| . | 17:17 |
| → jatt joined | 17:17 |
|
Tv
| i can give hell too | 17:17 |
|
jonkristian
| drizzd: yeah, though it's a bit over my head:D | 17:18 |
| → bobesponja joined | 17:18 |
| → rmh3093 joined | 17:18 |
|
drizzd
| jonkristian: same here, sorry | 17: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 reset | 17:19 |
| → narflekw joined | 17:19 |
| → gittish joined | 17:19 |
| → lolage0 joined | 17:19 |
| ← jmesnil left | 17:20 |
|
jonkristian
| maybe GIT_WORK_TREE | 17:21 |
| → eikonos joined | 17:21 |
| ← ijcd left | 17:21 |
|
drizzd
| jonkristian: you can try it. If git barks about the fact that it's bare, change the config | 17:22 |
|
vuf
| jonkristian: I think the bottom line is that the linuxworld.com blog is wrongish, which is confusing you | 17:22 |
|
| jonkristian: the eikke.com blog that it references includes a git-pull, which makes more sense | 17:23 |
|
jonkristian
| ill look at it:) | 17:23 |
|
| that's actually what i tried to do myself, before i came across that article | 17:24 |
| ← powr-toc left | 17:24 |
| ← harinath left | 17:24 |
| ← gittish left | 17: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_ joined | 17:24 |
| ← hiffy left | 17:25 |
|
vuf
| jonkristian: you need a non-bare repo somehow, though the article suggests two repos, one bare and one not | 17:25 |
|
drizzd
| jonkristian: yes, vuf is right. git pull is a much better solution | 17: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 on | 17:26 |
|
drizzd
| you can even use clone -s if you're concerned about space | 17:26 |
| → Fullmoon joined | 17: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 ok | 17:29 |
|
charon
| drizzd: afaics from the descriptions, -s saves a few inodes and can cross FS boundaries, but is dangerous | 17:30 |
|
narflekw
| so i need to set git up to run as a daemon yes? | 17:30 |
| → deavid joined | 17:30 |
|
jonkristian
| YEES, it's working:D | 17:30 |
|
| thanks guys, i felt so lost before. | 17:30 |
| stouset|away → stouset | 17:30 |
| → pmf joined | 17: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 not | 17:32 |
|
| a hardlinked file will note be deleted until all links are gone | 17: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 frustrating | 17:32 |
|
RandalSchwartz
| and open references | 17: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-relink | 17:33 |
|
drizzd
| narflekw: yeah, a new http protocol which supports hooks is in the works | 17:33 |
| ← ShadeHawk left | 17: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 left | 17:34 |
|
drizzd
| narflekw: over WebDAV it's not possible to execute hooks, obviously | 17:34 |
| ← joevandyk left | 17:35 |
|
drizzd
| vuf: good question | 17:35 |
| ← mcella left | 17:36 |
|
drizzd
| vuf: OTOH, it probably uses the same transport code 'git clone' does | 17:36 |
| → tritz joined | 17:36 |
| → priidu joined | 17:36 |
| ← kroimon left | 17:37 |
| ← rmh3093 left | 17:37 |
|
narflekw
| drizzd: yeah i was wondering how that would work, but i couldn't find anything documented about how it doesn't work yet | 17:37 |
| ← kbingham left | 17: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 joined | 17:38 |
| → segher joined | 17:38 |
|
Tv
| drizzd: don't think so | 17: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 netrc | 17:39 |
| ← charon left | 17:39 |
| ← sveajobb left | 17: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 joined | 17:41 |
|
Tv
| raz: because only some of the things conflicted; anything that managed to automerge is automerged | 17: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 already | 17:42 |
|
Tv
| raz: besides, the middle file is the output, so you need that there | 17:42 |
| → kbingham joined | 17:42 |
|
drizzd
| vuf: makes sense | 17: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.jpg | 17:44 |
| ← sgrimm left | 17:44 |
| → sgrimm joined | 17:44 |
|
Tv
| raz: if it was blank, you'd need to merge everything manually | 17:44 |
| → hiffy joined | 17:45 |
|
Tv
| raz: in the real world, only a small fraction of the changes cause conflicts | 17: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 joined | 17:45 |
|
KevBurnsJr
| Best git client for mac? | 17:45 |
|
Tv
| xinming_: mistake | 17:45 |
|
xinming_
| for now, If we want to setup the restricted shell, we have to use /usr/libexec/git-core/git-shell thing | 17:45 |
|
| which isn't a natural thing to me | 17: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 order | 17:46 |
| ← ph^ left | 17:46 |
|
Tv
| xinming_: was already | 17:46 |
|
ThaDon
| drizzd: thanks dude | 17:46 |
| → joydivider joined | 17: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 command | 17: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 |
|
| +if | 17:47 |
|
drizzd
| ThaDon: man git-update-server-info | 17:47 |
|
ThaDon
| drizzd: might be an apache setting | 17:47 |
|
Gitbot
| ThaDon: the git-update-server-info manpage can be found at http://git.or.cz/man/git-update-server-info | 17:47 |
|
Tv
| raz: if you want that, erasing the middle file is a few keypresses away, and you can even automate it if you want | 17: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 me | 17: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 guess | 17: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 left | 17:48 |
|
vuf
| Tv: one could imagine a mergetool that also has auto-merge capability | 17:48 |
|
drizzd
| ThaDon: you can also test by entering the url in your browser | 17: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 world | 17:48 |
|
raz
| hmm well ok | 17:49 |
|
| maybe i'll grasp it when i do some more real-world merges | 17:49 |
| → ph^ joined | 17:49 |
|
drizzd
| raz: I don't think mergetool is very popular | 17:50 |
|
ThaDon
| drizzd: yeah, tested with the browser and see everything fine :( | 17:50 |
|
| ThaDon confused | 17:50 |
|
vuf
| raz: I like a view like this better, http://www.scootersoftware.com/moreinfo.php?zz=screenshot&shot=TextMerge | 17:50 |
| ← kowey left | 17: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 .git | 17:51 |
|
drizzd
| ThaDon: I think that's fine | 17:51 |
|
| raz: I use git diff and an editor | 17: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 merges | 17:53 |
| → ponch84 joined | 17: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 sanity | 17:54 |
|
ThaDon
| drizzd: interesting, yes that was it | 17: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 me | 17: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 filesystem | 17:54 |
|
drizzd
| ThaDon: exactly | 17:54 |
|
ThaDon
| drizzd: lol, no no there *has* to be more idiots out there than just me | 17:55 |
|
vuf
| Tv: it is, but it beats any unix compare tool by miles | 17: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 patch | 17: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 resolution | 17:56 |
|
raz
| that's the last thing you want in a merge tool | 17:56 |
| → catphish joined | 17:56 |
|
ThaDon
| drizzd++ | 17:56 |
| → markkalderon joined | 17: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_ left | 17:58 |
|
MaddHatter
| glommer: git filter-branch, I think | 17:59 |
| → capisce joined | 17: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: stderr | 17:59 |
|
| catphish: btw sounds like you might want gitosis | 17:59 |
|
catphish
| ooh of course, thanks tv | 17: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 mysql | 18:00 |
| → abenea joined | 18:00 |
|
Tv
| *shrug* | 18:00 |
| ← catphish left | 18:01 |
| ← floppyears left | 18:02 |
| → WALoeIII joined | 18:02 |
| ← jackdempsey left | 18: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 side | 18:06 |
| → floppyears joined | 18:07 |
|
Tv
| yeah sometimes meld gets pretty badly confused about that | 18: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 rest | 18:08 |
| → krawek joined | 18:08 |
|
vuf
| what are the exact rules for when a dirty work tree will prevent you from changing branch? | 18:09 |
| → nickh joined | 18:10 |
|
abenea
| Tv: can't checkout another branch on dirty working dir | 18:10 |
|
Eridius
| vuf: when changing the branch would normally modify the dirty file | 18:10 |
|
| abenea: you can if the file is unchanged in that other branch | 18:10 |
| ← floppyears left | 18:10 |
|
Eridius
| basically, it errors out when it goes to write out the new version of the file and realizes the file's dirty | 18:10 |
|
| although that's not really true, because it errors out before writing any files | 18:10 |
|
Tv
| it refuses only when the alternative would be losing your edits | 18:11 |
|
| and then you can say "oh you'll probably get it right" with -m | 18:11 |
| → floppyears joined | 18:11 |
|
vuf
| okay, so no merging is done | 18:11 |
|
abenea
| Eridius: thanks, I know what I was doing wrong :) | 18:11 |
| rmh3093_ → rmh3093 | 18: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, yes | 18:13 |
| → advany joined | 18:14 |
| ← advany left | 18:14 |
| → advany joined | 18:14 |
| ← advany left | 18:16 |
| ← sgrimm left | 18:21 |
| → Beket joined | 18:22 |
| ← prof_freud left | 18:23 |
|
Voker57
| can i push via git:// protocol? Can't find any docs... | 18:23 |
|
thiago_home
| yes | 18:23 |
|
| unauthenticated and unencrypted | 18:24 |
| → advany joined | 18:24 |
|
thiago_home
| i.e., anonymous pushing | 18:24 |
| → tongueroo joined | 18:24 |
|
Voker57
| ugh :( | 18:24 |
| → charon joined | 18:25 |
| → david_koontz joined | 18:25 |
| → deskin joined | 18:26 |
|
Voker57
| SVN is better in that way, i can push to repo without shell access | 18:28 |
|
Tv
| Voker57: git can do that perfectly fine | 18:28 |
|
thiago_home
| you don't need shell access to push | 18:28 |
|
| (even with ssh) | 18:28 |
|
Voker57
| Tv: unauthenticated and unencrypted? | 18:28 |
|
thiago_home
| i.e., ssh != shell | 18:28 |
|
Tv
| Voker57: no, that would be silly | 18: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 commit | 18: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 -a | 18:29 |
|
thiago_home
| so you're going to commit them again? | 18:29 |
|
| ah, I see | 18:29 |
|
| git reset HEAD~ | 18:30 |
|
glguy
| HEAD^ | 18:30 |
|
thiago_home
| same | 18:30 |
|
demq
| yes, but as three commits not 1 | 18:30 |
|
glguy
| ~3 | 18:30 |
|
Voker57
| (i can launch daemons via php-shell too :P) | 18:30 |
|
thiago_home
| HEAD~ works on Windows and zsh, HEAD^ doesn't | 18:30 |
|
glguy
| err | 18:30 |
|
| thiago_home: doesn't ~ signify things not to match? | 18:30 |
|
| hmm, you're right, of course | 18:31 |
|
thiago_home
| yes, with extendedglob, sure. But you need something not to match | 18:31 |
|
glguy
| good tip | 18:31 |
|
| demq: if you reset one commit | 18:31 |
|
thiago_home
| you can also set nonomatch, which I do | 18:31 |
|
glguy
| you can then commit it back in parts | 18:31 |
| ← BabelO left | 18:31 |
|
Tv
| Voker57: you could kludge something, but if you can't figure it out, you probably don't want to even try | 18:31 |
|
| Voker57: decent virtual machines are $20/month, gitorious and github are free | 18:32 |
|
| or repo.or.cz | 18:32 |
|
demq
| seemed to work as i wanted. | 18:33 |
|
| thanks a lot folks. | 18:33 |
|
thiago_home
| Voker57: someone was working on cgi receiving | 18:33 |
|
| maybe that was spearce | 18: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 change | 18:33 |
|
thiago_home
| but I don't think it's anywhere near complete | 18:33 |
|
Tv
| Voker57: $20/mo, slicehost has been good to me | 18: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 left | 18:34 |
|
thiago_home
| demq: nope. HEAD~3 | 18:34 |
| → tsb joined | 18:34 |
|
demq
| cool. | 18:34 |
|
| thanks a lot. much obliged | 18:34 |
|
thiago_home
| just remember that "reset" is equivalent of removing that commit from history | 18: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 up | 18:34 |
|
demq
| yeah | 18:35 |
|
| no this was unpushed. | 18:35 |
|
thiago_home
| good | 18:35 |
| ← ciaran_ left | 18: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 joined | 18: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 think | 18:40 |
|
| vuf: though they might do it if you ask them | 18:40 |
|
| vuf: you get a selection of most popular OS preinstalls | 18:40 |
|
| vuf: and naturally you can overwrite it, if you're careful | 18:40 |
|
| vuf: i know people switched from rh to debian remotely ;) | 18:41 |
|
| vuf: (last line not related to slicehost) | 18:41 |
| ← WarrenK left | 18:42 |
| → j-b joined | 18:43 |
|
j-b
| hello | 18:43 |
|
vuf
| Tv: I guess my question really is whether you can modify the bootloader at will, to point to a different root | 18: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 dom0 | 18:44 |
|
| vuf: or at least, my box there uses xen; it predates kvm | 18:45 |
|
vuf
| j-b: it will, with some options | 18:45 |
|
j-b
| vuf: options in cp or in add ? | 18:45 |
|
Tv
| j-b: write operations never detect anything | 18:45 |
|
vuf
| j-b: copies/renames are detected when reading out of the repo, not when storing in it | 18:46 |
|
| Tv: thanks. Is eagain on slicehost? | 18:46 |
|
Tv
| vuf: yes | 18:46 |
|
j-b
| Tv: when I do one file to another one, it seems to work | 18:46 |
|
| but not in one to many | 18:47 |
| ← spool left | 18:47 |
|
charon
| j-b: try 'git blame -C $file' and see if it detects the right source | 18:47 |
|
vuf
| j-b: for example, "git show -C -C" will work | 18:48 |
| → johan-s joined | 18:49 |
|
j-b
| charon: no, it doesn't | 18:49 |
|
| vuf: yes, it does. | 18:51 |
| → sgrimm joined | 18:51 |
|
j-b
| vuf: but then git blame -C doesn't | 18:51 |
|
charon
| apparently your slices are too small to be detected | 18:51 |
|
| give a numeric arg to -C | 18:51 |
|
j-b
| too small ? | 18:52 |
|
| 235Ko is too small ? | 18:52 |
|
charon
| hmm | 18: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 -C | 18:52 |
|
j-b
| vuf: in blame ? | 18:53 |
|
vuf
| yeah | 18:53 |
|
tmm1
| how do i undo a merge.. branch X was a featured merged into master, but it had a bug | 18:53 |
|
j-b
| vuf: trying it now | 18:53 |
| → loiseau joined | 18:53 |
|
vuf
| tmm1: reset to before the merge | 18:53 |
|
charon
| default copy score is 40 apparently | 18:54 |
|
tmm1
| what if i have commits since then | 18:54 |
| ← joshbuddy left | 18:54 |
|
vuf
| tmm1: fix the bug | 18:55 |
| ← giom left | 18:55 |
|
j-b
| charon: git blame -C -C takes forever, but I am still hoping | 18:55 |
| ← sgrimm left | 18:56 |
| → sgrimm joined | 18:56 |
| → andreaja joined | 18:57 |
|
tmm1
| vuf: ... | 18:57 |
|
| git revert -m looks like what i need | 18:57 |
|
vuf
| tmm1: right | 18:57 |
|
Tv
| tmm1: in general, you can't undo anything you've published; you can make the reverse change, and that's what revert does | 18:57 |
|
| tmm1: but it's not the same as undo; the merge is done for good | 18:57 |
|
j-b
| btw, we received a mail for the GitSurvey... and our answer is : "Git is great" 'make it faster on windows' :D | 18:57 |
|
| vuf: charon: blame -C -C works | 18:58 |
| → WarrenK joined | 18:58 |
|
charon
| nice... unfortunately it's so expensive that iirc linus recommended it as a stress test | 18:58 |
| ← whee left | 18:58 |
|
j-b
| charon: so, how do I commit that now ? | 18:59 |
|
tmm1
| Tv: that's fine | 18:59 |
| → whee joined | 18:59 |
|
charon
| j-b: you've already committed, haven't you? blame is strictly inspection | 18:59 |
|
j-b
| yes | 18:59 |
|
| charon: sorry, push | 18:59 |
|
charon
| all copy and move detection in git is after the fact | 18:59 |
|
j-b
| yes | 18: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 usual | 19: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 joined | 19: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_ it | 19:01 |
| → renan_saddam joined | 19: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 #1 | 19: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 it | 19:02 |
|
vuf
| renan_saddam: commit it, it means the work area is dirty | 19:02 |
|
Tv
| tmm1: so depends on where you run merge/pull | 19:02 |
|
charon
| s/last/earliest/ | 19:02 |
|
Tv
| tmm1: git show to see | 19:02 |
|
j-b
| charon: hmmm... ok... but not really optimal, but I understand. thanks | 19: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 him | 19:03 |
|
renan_saddam
| vuf: I wanna update my repo, like in svn | 19:03 |
| → boto joined | 19:04 |
|
vuf
| renan_saddam: you have local, uncommitted changes | 19:04 |
|
renan_saddam
| vuf: wow! I think I got it! | 19:04 |
|
| vuf: just config files | 19:05 |
|
j-b
| charon: vuf: Tv: thanks you very very very much. Keep the good work. | 19:05 |
| ← univate left | 19:05 |
|
renan_saddam
| thanks vuf! | 19:05 |
| ← j-b left | 19:05 |
|
| charon thinks renan_saddam should read a tutorial on the D in DVCS | 19: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, thanks | 19:07 |
| ← Voker57 left | 19:08 |
| → foca_ joined | 19:09 |
| → cryo_ joined | 19:11 |
| ← cryo_ left | 19:13 |
| → cryo_ joined | 19:14 |
| ← qrush left | 19:16 |
| ← ponch84 left | 19:18 |
| ← renan_saddam left | 19:19 |
| ← Beket left | 19:19 |
| → cilly joined | 19:21 |
| → litage joined | 19:25 |
| ← Lash| left | 19:27 |
| ← irotas left | 19:28 |
| ← foca left | 19:29 |
| → ponch84 joined | 19:30 |
| → Beket joined | 19:31 |
| → timcharper joined | 19:31 |
| ← loiseau left | 19:32 |
| ← iulian left | 19:33 |
| ← ponch84 left | 19: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, no | 19: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 then | 19:39 |
|
jatt
| how? | 19:39 |
| → irotas joined | 19:39 |
| ← notmw left | 19:39 |
|
Mikachu
| check git-filter-branch and git-rebase manpgaes | 19: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 |
| andres → andrezZz | 19:40 |
| andrezZz → andres | 19:40 |
|
charon
| oh | 19:40 |
| → botanicus joined | 19:41 |
|
charon
| the only thing that might get smaller through such a move is the working copy. .git definitely keeps its size | 19:41 |
|
Mikachu
| of course .git will be larger if you have both .pdf and .pdf.gz in the history though | 19: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
| indeed | 19:42 |
| → ph^_ joined | 19:42 |
| ← ph^_ left | 19:42 |
| → qrush joined | 19:45 |
| → djwonk joined | 19: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' HEAD | 19: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 status | 19: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 worked | 19:53 |
|
Mikachu
| vuf: yes | 19:54 |
|
jatt
| $ git filter-branch --index-filter 'git rm --cached ./\*.pdf' HEAD | 19:54 |
|
| Rewrite 1fef263b9bb90b3883a2ef78557663314da21b56 (1/263)fatal: pathspec '*.pdf' did not match any files | 19:54 |
|
| hmm.. so I guess I need to give the name of the files | 19:54 |
| ← ph^ left | 19:54 |
|
jatt
| the full path | 19:54 |
|
charon
| why not just 'git rm --cached ./*.pdf' | 19:55 |
|
Mikachu
| jatt: --ignore-unmatched | 19:55 |
| → brendon_work joined | 19:55 |
|
charon
| the argument is evaluated in the shell which will expand the * for you | 19: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 course | 19: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 subdirectories | 19:56 |
| ← cilly left | 19: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 argument | 19:56 |
|
charon
| oh, sorry, i forgot that you're in index-filter | 19:56 |
|
jatt
| charon: yes I compressed all pdf in the subdirectories too | 19:56 |
|
vuf
| Mikachu: rearranging a bit during a cvs conversion, and I would like the history not to have a rename of all files | 19:56 |
|
charon
| jatt: forget what i said, i'll check what the real problem is | 19:57 |
|
Mikachu
| vuf: it just seems weird to have a repo where all files are in a subdir | 19:57 |
|
charon
| jatt: mikachu was right... almost. the option is --ignore-unmatch | 19: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 myself | 19:58 |
|
charon
| oh, right. | 19:58 |
|
Mikachu
| vuf: ah | 19:58 |
|
| charon hides | 19:58 |
|
jatt
| I see. So --ignore-unmatch will go ahead even if the files were previously removed? | 19:58 |
|
Mikachu
| or didn't exist yet | 19: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) *.pdf | 19:59 |
|
| instead of causing gfb to abort | 19:59 |
|
| by the way, to really rewrite all of history you probably need to use '-- --all' instead of HEAD | 19: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 --cached | 20:01 |
|
vuf
| Mikachu: well, something like it, anyway | 20:01 |
|
jatt
| nice | 20:01 |
|
| $ git filter-branch --index-filter 'git rm --ignore-unmatch --cached ./\*.pdf' HEAD | 20:01 |
|
| worked recursively. | 20:01 |
|
| Ref 'refs/heads/master' was rewritten | 20:01 |
|
| let's see if .git is smaller after commit :) | 20:02 |
|
Mikachu
| jatt: it's not | 20:02 |
|
| jatt: and what do you mean "after commit"? | 20:02 |
|
| jatt: you just changed every single commit in your history | 20:02 |
|
jatt
| hm. it is larger | 20:02 |
|
| oh! I see | 20: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 reflog | 20: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-reflog | 20:04 |
|
Gitbot
| yes: the git-reflog manpage can be found at http://git.or.cz/man/git-reflog | 20:04 |
|
Mikachu
| heh | 20: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? :P | 20: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 joined | 20:10 |
|
vuf
| jatt: I mean, git compresses files anyway | 20:10 |
|
| it might actually be smaller if you don't compress, as zipped files cannot be delta compressed | 20:11 |
|
Mikachu
| if you want to make .git smaller, make core.compression 9 or so | 20:12 |
|
| and repack -adf | 20: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 too | 20:13 |
|
| but i guess most pdf viewers handle .gz transparently? | 20:14 |
|
Tv
| vuf: pdf doesn't compress all that well | 20:14 |
|
| back in the day of postscript, .ps.gz was common; no longer with pdf | 20: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 there | 20:14 |
|
vuf
| Tv: that depends, but it can have gzip/png/jpeg internally, so it might not compress well | 20:14 |
|
Tv
| vuf: sure, i mean on the average | 20: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 AFAIK | 20:16 |
|
johnw
| cool, this did it: git show branch:file > /tmp/file ; diff -D NAME /tmp/file file | 20: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 Mikachu | 20:19 |
|
Mikachu
| jatt: you want to expire the reflog entries from before the rewrite so that a repack will delete the old commits | 20:20 |
| ← rmh3093 left | 20:20 |
|
jatt
| I will go for higher compression rate after I see what the filter-branch option did for a smaller .git | 20:20 |
| → Tammy-- joined | 20:20 |
|
vuf
| I am thinking that cloning the repo should get rid of the old cruft, no? | 20:20 |
| → timprouty joined | 20: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 though | 20:22 |
| → rdavila joined | 20:23 |
|
Mikachu
| vuf: yeah, if you use file:// | 20:23 |
| ← botanicus left | 20: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 that | 20:24 |
|
| and the other question doesn't matter, since you haven't made any commits after the rewrite | 20:25 |
| → gbucher_ joined | 20: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' size | 20:27 |
| ← deskin left | 20: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 now | 20:28 |
| ← tongueroo left | 20:29 |
| → tongueroo joined | 20:29 |
| → thannoy joined | 20:30 |
|
jatt
| du --max-depth=1 says 261120 for the clone and 261256 for the master. | 20:30 |
|
| no much difference | 20:31 |
|
narflekw
| how do i see the message that was associated with a tag? i.e. `git tag` lists just the tag names | 20:32 |
|
Tv
| narflekw: git show | 20:32 |
|
narflekw
| ahh thanks | 20:32 |
| ← warlock_mza left | 20:33 |
| → timcharper_ joined | 20:33 |
| → Arrowmaster joined | 20:33 |
|
Mikachu
| you can try one of | 20:34 |
|
| git for-each-ref --format='%(tag) %(subject)' refs/tags | 20:34 |
|
| git for-each-ref --format='%(refname) %(contents)' refs/tags | 20:34 |
|
| too | 20:34 |
|
| or either combination | 20:34 |
| ← Tammy-- left | 20:35 |
|
Tv
| if he went that far, surely cat-file would be better | 20:35 |
| ← Weaselweb left | 20:38 |
| → w00t_ joined | 20:38 |
| → deskin joined | 20:40 |
| ← w00t left | 20:42 |
| ← cryo_ left | 20:45 |
| ← Bryson left | 20:46 |
|
jogla
| if i have different repositories, can i make something like a tag that is visible in more than one? | 20:46 |
| ← Guest84351 left | 20:47 |
|
selckin
| submodules maybe | 20:47 |
| ← gbucher left | 20:47 |
| ← gbucher_ left | 20:48 |
| ← vmiklos left | 20:48 |
| ← ToxicFrog left | 20:49 |
| ← timcharper left | 20:49 |
| ← JimmyB_ left | 20:50 |
| → mcella joined | 20:53 |
| ← mcella left | 20:53 |
|
vuf
| jogla: like different repositories of the same project? | 20:54 |
| → vmiklos joined | 20:54 |
| → ToxicFrog joined | 20:54 |
| → drewr joined | 20:56 |
| → wagle joined | 20:56 |
|
drewr
| Will git check ~/.git/hooks for hooks to run? | 20:57 |
| ← bobmcw left | 20:58 |
|
jogla
| vuf: Seems to be something like that, they are at least related | 20:58 |
|
| But have different releases and different versions | 20:58 |
|
| I think submodules are the solution | 20:58 |
|
drizzd
| drewr: no | 20:58 |
| → mcr joined | 20:59 |
|
drewr
| So I need to keep a separate post-receive in each repository? | 20:59 |
|
drizzd
| yes | 20:59 |
|
Mikachu
| drizzd: if you put it in the template dir, every new repo will get it | 20:59 |
|
drewr
| k, thanks. | 20:59 |
|
Mikachu
| drewr even | 20: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 joined | 21:00 |
| ← DrFrasierCrane left | 21:00 |
|
Mikachu
| mcr: when origin has updated branches, --tags will not fetch them | 21: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 left | 21:01 |
|
Mikachu
| mcr: it will only fetch tags | 21: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 push | 21:02 |
|
| the manpage is inconclusive | 21:02 |
| → yofel joined | 21:03 |
| ← cannonball left | 21:03 |
| ← jatt left | 21:03 |
|
Mikachu
| but thinking about it, i'm probably wrong, and --tags downloads both branches and tags, while push --tags will only push tags | 21: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 origin | 21:05 |
|
| problem solved. | 21:05 |
| ← priidu left | 21:05 |
| ← eternaleye left | 21:05 |
| → mkdek joined | 21:08 |
|
| ToxicFrog ponders writing git integration for nedit | 21: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 -- file | 21:10 |
|
ToxicFrog
| git checkout -- filenames | 21:10 |
|
deskin
| or git reset --hard HEAD | 21:10 |
|
ToxicFrog
| If you want to revert the entire working copy. | 21:10 |
|
deskin
| if you want to undo all your changes | 21:10 |
|
mkdek
| thanks, checkout worked fine | 21: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 left | 21:11 |
|
johnw
| which is arguably more consistent | 21:11 |
| → ShadeHawk joined | 21:11 |
| → dato joined | 21:13 |
| → etgryphon_ joined | 21: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 joined | 21:14 |
|
johnw
| create a tag | 21:14 |
|
| then delete the branch | 21: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 either | 21: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" myself | 21:14 |
| ← timcharper_ left | 21:15 |
|
johnw
| you could always use a wrapper around "git branch" | 21:15 |
|
| just filter it out | 21:15 |
|
dato
| heh, I'm not going to do that :) | 21:15 |
|
ToxicFrog
| fixUp: yep, it's entirely self-contained | 21:15 |
|
dato
| but thanks for the suggestion | 21:15 |
|
johnw
| you could create your own ref | 21:15 |
|
fixUp
| ToxicFrog: so It's ok to tar it onto tape ? | 21:15 |
| ← mkdek left | 21:16 |
|
johnw
| echo $commit > .git/refs/hidden/foo | 21:16 |
|
ShadeHawk
| dato: move it for example to refs/Attic | 21:16 |
|
| (copy as a file) | 21:16 |
|
ToxicFrog
| fixUp: indeed, and if you s/tape/USB/ I've done that myself quite often | 21:16 |
|
johnw
| just mkdir .git/refs/hidden first | 21:16 |
|
| that will keep the commit from being gc'd | 21:16 |
| → timcharper joined | 21:16 |
| → eternaleye joined | 21:16 |
|
Mikachu
| fixUp: and it's best if nobody is writing to the repo while you're copying it | 21: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 place | 21:16 |
|
johnw
| ah, I missed that | 21:16 |
|
dato
| hm | 21:16 |
|
ToxicFrog
| No, flash memory - I have a few repositories I keep copies of on a 4GB pendrive for working on on the go | 21:17 |
|
dato
| well, I said a "fake remote" | 21:17 |
|
ToxicFrog
| In cases when I won't reliably have my laptop or a net connection | 21: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, etc | 21:18 |
|
| Plus the working copy itself, of course | 21:18 |
|
| So tar it up and you can untar it later and it's just as you left it | 21:18 |
|
dato
| though maybe I could go for "refs/.hidden" | 21:18 |
|
johnw
| doesn't git branch only show refs/heads | 21:18 |
|
| ? | 21:18 |
|
dato
| though maybe that'll gc it | 21:18 |
|
fixUp
| ToxicFrog: ok, thats what I thought it's good to know | 21: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 git | 21:19 |
|
| ToxicFrog: cheap offline hosting in comparison to svn | 21:19 |
| → cilly joined | 21:19 |
|
dato
| meh | 21:20 |
|
| johnw: I'm sorry | 21: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 figure | 21:20 |
|
| johnw: so indeed thanks, I'm going to do that, is a very good suggestion | 21:20 |
| ← stouset left | 21:21 |
| → fade-in joined | 21:21 |
|
johnw
| i thought of that because it's what git-filter-branch does with your old HEAD | 21: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 list | 21: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: nope | 21:21 |
| → eternaleye_ joined | 21:21 |
|
ToxicFrog
| Hmm. That's cool. | 21:22 |
| → bobmcw joined | 21: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-bundle | 21:22 |
|
Gitbot
| ShadeHawk: the git-bundle manpage can be found at http://git.or.cz/man/git-bundle | 21:22 |
|
ToxicFrog
| Yeah, I just looked at the man page | 21:22 |
|
| Hence "that's cool" | 21:22 |
|
| I will definitely keep this in mind next time I need to do that | 21:23 |
|
jogla
| Do third party dependencies, like jar files, belong to the repository | 21: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 left | 21:23 |
| ← EmilMedve left | 21:24 |
| ← Ryback_ left | 21:24 |
| ← langenberg left | 21:25 |
| → Man-erg joined | 21:26 |
| → jatt joined | 21: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 foo | 21:28 |
|
| shows: | 21:28 |
|
| Cannot commit config file! | 21:28 |
|
| fatal: Not a valid object name HEAD | 21: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 sure | 21:29 |
| ← advany left | 21: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 me | 21:29 |
|
| manually | 21:29 |
| ← Beket left | 21: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 problem | 21:30 |
|
ShadeHawk
| the question is does sshfs do case folding (vfat, anyone?) | 21:30 |
| ← etgryphon left | 21:30 |
|
johnw
| cbreak: as long as they aren't being written to at the time, sure | 21: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 does | 21:31 |
| ← etgryphon_ left | 21:31 |
|
jatt
| afs is a linux filesystem, isn't it? | 21:31 |
| ← Guest45175 left | 21:31 |
|
jatt
| the remote side is running afs | 21:31 |
| ← tritz left | 21:31 |
|
cbreak
| afs is cross platform network file system | 21: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 NFS | 21:32 |
| ← zachinglis left | 21: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 transfered | 21:33 |
|
cbreak
| "TEST", "test" and then try if they are different | 21:33 |
|
jatt
| cbreak: yes, I tested touch foo; cat foo > foo; sshfs seems to work fine, even the owner is correct | 21: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 case | 21:34 |
|
jatt
| $ touch foo FOO; ls -altr foo FOO | 21:34 |
|
| -rw-r--r-- 1 376403 10000 0 2008-09-18 22:34 FOO | 21:34 |
|
| -rw-r--r-- 1 376403 10000 0 2008-09-18 22:34 foo | 21:35 |
|
cbreak
| hmm.... weird. | 21:35 |
|
jatt
| looks alright | 21:35 |
|
| but, what does this | 21:35 |
|
| Cannot commit config file! | 21:35 |
|
| message mean. | 21:35 |
|
| in fact the .git directory was created | 21:36 |
| ← eternaleye left | 21:36 |
|
jatt
| but no files where transfered to the remote side | 21:36 |
|
| no other files | 21:36 |
|
| maybe is a FUSE bug? | 21:38 |
|
charon
| that message comes from a failed rename() system call | 21:38 |
|
| so maybe sshfs doesn't like renames | 21:38 |
|
jatt
| hmm that's vfs I guess | 21: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 places | 21: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 left | 21:41 |
|
ShadeHawk
| but some of git are shell scripts, and they use probably 'mv a+ a' | 21:41 |
|
jatt
| you are right... man 2 rename | 21:41 |
|
charon
| mv is rename() unless across fs boundaries iirc | 21:41 |
| ← sergiodj left | 21:41 |
| → sergiodj joined | 21:42 |
|
charon
| that might even make sense | 21: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 yourself | 21:42 |
| ← wagle left | 21: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 atomicit | 21:43 |
|
| +y | 21:43 |
| ← fanthomas left | 21: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 joined | 21:50 |
|
jatt
| hm. and now after git pull: | 21:51 |
|
| error: unable to write sha1 filename .git/objects/27/17293ce2bb0ccf3e061c8b5e32b902a80be440: Operation not permitted | 21:51 |
|
| fatal: failed to write object | 21:51 |
|
| again, this is only in the partition mounted with sshfs | 21:51 |
| → capisce_ joined | 21:54 |
| → jds_ joined | 21:55 |
| ← deskin left | 21:55 |
|
charon
| so apparently it doesn't like link & unlink either huh | 21:55 |
| ← kbingham left | 21:56 |
|
charon
| in case anyone is interested, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=318078#10 explains where the problem originates | 21:56 |
|
Gitbot
| [git 318078]: http://tinyurl.com/4w3ozx [blob] | 21:56 |
|
Mikachu
| heh | 21:56 |
|
jatt
| hm. I will need to try nfs or some other distributed filesystem different than FUSE then | 21:56 |
|
charon
| it's an sshfs/sftp problem, not a fuse problem | 21:57 |
|
cbreak
| afs? :) | 21:57 |
|
jatt
| I see | 21:57 |
| ← bobmcw left | 21:58 |
| ← eternaleye_ left | 21:58 |
| → eternaleye_ joined | 21:58 |
|
jatt
| hm that's a pretty old bug | 21:58 |
|
cbreak
| doesn't look like a bug | 21:59 |
|
| more like a lacking feature | 21: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 joined | 21:59 |
| → loinclot_ joined | 22:00 |
| ← SRabbelier left | 22:00 |
| → jesselucas joined | 22:01 |
| ← capisce left | 22:02 |
| → doener_ joined | 22:02 |
|
charon
| i don't get this. the code should resort to rename() which you seemed to have fixed | 22:02 |
| ← Catfish_ left | 22: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 multipl | 22:04 |
|
charon
| fae046bd around line 2165 | 22:04 |
|
Gitbot
| [git fae046bd]: http://tinyurl.com/3qy6pk [blob] | 22:04 |
|
jatt
| I can create files and it works. In the bug report someone tries | 22:04 |
|
| $ touch x y; mv -f x y | 22:04 |
|
| and it fails for him | 22:04 |
|
| but for me it works | 22:04 |
|
| so I'm not sure I'm hitting the same lacking feature | 22:04 |
|
ShadeHawk
| jesselucas: did you use svn:externals with Subversion? | 22:05 |
|
jesselucas
| ShadeHawk: No just one big nasty repo. Trying to fix that though | 22: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 Wiki | 22: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/238f0cca02a7b0c010781783ee99a3622fdfa6 | 22:07 |
|
| why .git/objects/27/17293ce2bb0ccf3e061c8b5e32b902a80be440: Operation not permited hm. | 22:07 |
|
| sure | 22:07 |
| ← capisce_ left | 22:07 |
|
jatt
| $ ln x y | 22:07 |
|
| ln: creating hard link `y': File exists | 22:07 |
|
charon
| oh wow | 22:07 |
|
| int ret = link(tmpfile, filename); | 22:07 |
| ← loincloth left | 22: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 joined | 22:08 |
|
jogla
| Hello, if i understood it right, the commit id is a sha1 hash over the diff | 22:09 |
|
charon
| (file exists is fine) | 22:09 |
|
jogla
| How can you be sure that there are no collisions | 22:09 |
| → capisce joined | 22:09 |
|
Eridius
| jogla: actually, it's not over the diff | 22:09 |
|
cbreak
| I think it's more complicated | 22:09 |
|
Eridius
| it's a hash of the commit object | 22: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.1 | 22:10 |
|
charon
| hmmm | 22:10 |
|
jatt
| I mean newer | 22:10 |
|
| ops | 22:10 |
|
Eridius
| and the tree's hash depends on the hashes of every single file reachable from that tree, and the tree structure | 22:10 |
|
cbreak
| it also contains the hash of the previous commit object | 22:10 |
|
charon
| ok i didn't read into that old code | 22:10 |
|
Eridius
| and the author and message and other metadata | 22:10 |
|
charon
| but the newest one is definitely broken | 22:10 |
|
cbreak
| (the commit object of a merge commit has several parent hashes) | 22:10 |
|
jatt
| I see | 22:10 |
|
| So upgrading won't help for me | 22:10 |
|
Eridius
| in other words, the hash of the commit object is effectively a hash of the entire history and contents of the repo | 22:11 |
|
cbreak
| I think you can get collisions | 22:11 |
|
| but it's quite unlikely | 22:11 |
|
Eridius
| *extremely* unlikely | 22: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 drive | 22: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 sshfs | 22:13 |
|
jogla
| Eridius: Good to know :) Thank you | 22:13 |
|
loiseau
| Eridius: What would be the effect if there was a collision? | 22:13 |
|
Eridius
| loiseau: git would probably complain about corrupted objects | 22:13 |
|
| unless the collisions were of two of the exact same object. Then it would probably just get confused | 22:13 |
|
| but again, you're never ever going to get a collision | 22:14 |
|
jesselucas
| ShadeHawk: Do you know of a tutorial on using git for managing multiple projects? | 22:14 |
|
loiseau
| ah interesting | 22:14 |
|
| yeah I know ;) | 22:14 |
|
Eridius
| s/exact same object/exact same object type/ | 22:14 |
| ← doener left | 22: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 send | 22:15 |
| → gbucher joined | 22:15 |
|
loiseau
| Just some kind of academic interest | 22:15 |
|
jatt
| charon: sure I will install and test with 1.6.0.2 now. | 22:16 |
| ← jesselucas left | 22:19 |
|
charon
| jatt: http://rafb.net/p/VumbRM50.html | 22:20 |
|
| save it somewhere and feed it to 'git am' | 22:20 |
| → ijcd__ joined | 22:21 |
| ← danten left | 22: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 now | 22:22 |
| ← gbucher left | 22:23 |
| → gbucher joined | 22:23 |
| ← gbucher left | 22:23 |
| → archis joined | 22:23 |
|
charon
| that went through fine... yay for tmpfs | 22: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 problems | 22: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 earlier | 22:27 |
|
| ThaDon is perplexed | 22:27 |
| ← lamont left | 22: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 joined | 22:28 |
| → ijcd joined | 22:29 |
| → jackdempsey joined | 22:29 |
|
ThaDon
| oh... git expects git to be /usr/bin.... | 22:29 |
| ← ijcd_ left | 22:30 |
|
jatt
| charon: ok, thank you very much for your help :), I will keep using sshfs to synchronize my stuff | 22:31 |
|
| sshfs+git | 22: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 fosho | 22:31 |
| → wagle joined | 22:32 |
|
jatt
| charon: yes the partition is still mounted with -workaround=rename, will test without it | 22: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 git | 22:33 |
|
jatt
| sure I will create an entry for this | 22:34 |
|
cbreak
| jonkristian: can you do it in a hook? | 22:34 |
|
vuf
| jonkristian: setup a webfolder user, and have people push through ssh | 22:34 |
|
| jonkristian: wait, do you have people working *directly* in the webfolder? | 22:35 |
| ← Ademan left | 22:36 |
|
adamm
| jonkristian: maybe the umask is not set right? | 22:36 |
| ← boto left | 22:36 |
|
charon
| jatt: great, thanks. i'm off to bed, happy hacking :) | 22:37 |
| ← charon left | 22:37 |
| ← radarek left | 22:37 |
| → zjason joined | 22:38 |
|
jonkristian
| vuf: yes, well, git is updating that webfolder directly on a push from each user | 22:38 |
|
| vuf: each user has umask 0002 in their .zshrc on that directory | 22:38 |
| ← dsyzling left | 22:39 |
| → codeshot joined | 22:39 |
|
vuf
| jonkristian: I think the ssh pushing should work | 22:39 |
| ← juanjoc left | 22:39 |
|
vuf
| then all files are created as the webfolder user, and you don't need setgid. personally, I like that better | 22:40 |
| ← jackdempsey left | 22:40 |
| ← ShadeHawk left | 22:40 |
|
jonkristian
| vuf: im not sure i understand | 22:41 |
|
vuf
| hrm | 22:41 |
| → lamont joined | 22: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 one | 22:42 |
|
| people are already pushing through ssh, that's how we've set up git | 22:43 |
|
| ssh://user@domain.com/path/to/repo/project.git | 22:43 |
|
vuf
| oh | 22:43 |
| ← bentob0x left | 22:43 |
|
vuf
| then my proposal is to have a common [email@hidden.address] | 22:44 |
|
| if you have authorization concerns, that may not work | 22:44 |
|
jonkristian
| ah | 22:44 |
|
| i could create a git user and let everybody use that, but if there's some other way | 22:45 |
| ← BarryCarlyon left | 22:45 |
|
jonkristian
| and i'd really like an overview on who's done what | 22:45 |
|
vuf
| I always hated the setgid since it seems to break every now and then - maybe that is just me | 22:46 |
|
jonkristian
| yeah, i hate that stuff like that doesn't work | 22:46 |
| ← ijcd__ left | 22: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 happens | 22:47 |
|
| yeah | 22: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 joined | 22: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 modified | 22:49 |
| ← fixUp left | 22:49 |
|
vuf
| k-s: that is two questions? | 22:49 |
|
Mikachu
| up to three now | 22:50 |
|
| k-s: if the rebased commit is no longer needed, you can skip it with git rebase --skip | 22:50 |
| → madewokherd joined | 22:50 |
|
k-s
| Mikachu: i guess it's still needed | 22:50 |
| ← zjason_ left | 22:50 |
|
k-s
| the patch still sits under .dotest/patch | 22:50 |
|
| should I manually git-apply it? | 22:51 |
|
vuf
| k-s: you should add the changes | 22:51 |
|
k-s
| vuf: yep, but git-apply .dotest/patch ? | 22:52 |
| ← thannoy left | 22:52 |
| → perezd88_ joined | 22:52 |
| ← david_koontz left | 22:53 |
| → ajonat joined | 22:53 |
| → ciaran joined | 22: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 it | 22:55 |
|
jonkristian
| ok | 22:55 |
| ← ciaran left | 22:56 |
| → ciaran joined | 22: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, thanks | 22:56 |
|
jonkristian
| --shared | 22:57 |
|
| git init [-q | --quiet] [--bare] [--template=<template_directory>] [--shared[=<permissions>]] | 22:57 |
| djwonk → djwonk_afk | 22:57 |
|
jonkristian
| but that can only be set up when first creating a repo, or can i change the one i have | 22:57 |
| ← djwonk_afk left | 22:58 |
| ← loiseau left | 23:00 |
| → grumpy joined | 23:01 |
|
grumpy
| lo | 23:02 |
| → rtomayko_ joined | 23:02 |
| ← aroben left | 23:04 |
|
tongueroo
| hey guys | 23:04 |
|
grumpy
| yop | 23:04 |
|
jonkristian
| vuf: git init --shared=group will setgid on the repositories, don't know how it acts on a pull yet though | 23: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 :P | 23:05 |
| ← softdrink left | 23:06 |
|
vuf
| jonkristian: great, thanks | 23: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 trick | 23:08 |
|
vuf
| jonkristian: it seems you should set core.sharedRepository(?) | 23:09 |
| ← Toranin1 left | 23:10 |
|
vuf
| grumpy: git blame -C -C destinationfile | 23:10 |
| ← LiamH left | 23:11 |
| ← perezd88 left | 23:13 |
| ← ciaran left | 23: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 joined | 23: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 left | 23:18 |
|
grumpy
| vuf: ??? | 23:19 |
| → ciaran joined | 23: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 left | 23:20 |
| ← ciaran left | 23:21 |
| → ciaran joined | 23:21 |
|
grumpy
| git blame -C -C destfile seems to be showing who, when, changelist#, ... for each line of a file | 23: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 webdir | 23:30 |
|
| so basically i can just add whomever to that group, and they're ready to go | 23:30 |
| ← foca_ left | 23:32 |
| ← jpeeler left | 23:33 |
| → softdrink joined | 23:34 |
| → Beket joined | 23:35 |
| ← rtomayko_ left | 23:38 |
| ← bronson left | 23:39 |
| ← ciaran left | 23:39 |
| → pcc1 joined | 23:39 |
| → ciaran joined | 23:39 |
|
mutex
| lets say I have a file in some state that is in the git repository in that state as well | 23:40 |
|
| but I don't know what commit ID that is | 23:40 |
|
| is there a way to somehow find the commit id ? | 23:40 |
|
mugwump
| hmm | 23: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 for | 23:41 |
|
mugwump
| ah | 23:41 |
|
mutex
| so I'd like to figure out exactly what commit-ID the file in this state is | 23:41 |
|
mugwump
| ok, so first find the blob id of the file you have | 23:41 |
|
| git-hash-object -t blob filename | 23: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 have | 23:42 |
| ← FunkeeMonk left | 23:43 |
|
mugwump
| right. just not with `sha1sum` :) | 23:43 |
|
mutex
| oh... | 23:43 |
| → Big_Lebowski joined | 23: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 history | 23:44 |
| → ciaran_ joined | 23: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/branch2 | 23:45 |
| ← ciaran left | 23:45 |
|
Gitbot
| mugwump: the git-rev-list manpage can be found at http://git.or.cz/man/git-rev-list | 23:45 |
|
grumpy
| does anyone know how to track the changes made to a function "foo" across the history (including file changes...)? | 23:46 |
| ← ciaran_ left | 23:46 |
| → ciaran joined | 23:46 |
| ← Big_Lebowski left | 23:46 |
|
mugwump
| grumpy: see git-blame, and git-log -Sfoo | 23:46 |
|
| you need to set options to git-blame to get it to follow functions moving around files | 23:47 |
| ← ereslibre left | 23:47 |
|
mugwump
| and it's not perfect, esp. wrt to changing indents etc | 23:47 |
| → djanowski joined | 23:49 |
|
djanowski
| hi folks. is there a way to have git ignore "newlines at end of file"? | 23:49 |
| ← carrus85 left | 23:50 |
| ← archis left | 23:51 |
| ← Yuuhi left | 23: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 diffs | 23: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 that | 23:55 |
|
| ie, git-log -p | 23:55 |
|
| or you can use git-show with individual commits | 23:55 |
|
| grumpy: correct | 23: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 left | 23:57 |
| ← schacon left | 23:58 |
| ← krawek left | 23:58 |
| ← ciaran left | 23:59 |
| → ciaran joined | 23:59 |
| ← djanowski left | 23:59 |