| 2007-01-02 |
| → DrNick2 joined | 00:09 |
| DrNick2 → DrNick | 00:09 |
| → tokkee joined | 00:49 |
| → PugMajere joined | 00:49 |
| → Thumper_ joined | 00:49 |
| → neuralis joined | 00:49 |
| → telmich joined | 00:49 |
| → matled joined | 00:49 |
| → anholt joined | 00:49 |
| → kblin joined | 00:50 |
| → z3ro joined | 00:50 |
| → mchehab joined | 01:06 |
| → beu joined | 01:36 |
| → DanielHolth joined | 01:39 |
| → spearce joined | 01:58 |
| → benoitc joined | 02:02 |
| → benoitc joined | 02:08 |
| ← bfield1 left | 02:40 |
| → benoitc joined | 03:10 |
| → xjjk joined | 03:54 |
|
benoitc
| morning' | 04:29 |
|
| have a pb with git | 04:29 |
|
| i did git push on a remote machine | 04:29 |
|
spearce
| morning? its still evening here. :) | 04:29 |
|
benoitc
| mm internet time ;) | 04:29 |
|
| so i did push on a machine where i clone a git repo, but content isn't updated on the original repo | 04:30 |
|
| i did gitk to check, and git pussh seem to work | 04:31 |
|
| i have changes displayed | 04:31 |
|
spearce
| right. push doesn't update the working directory, as you generally shouldn't push into a repository that has a working directory attached to it. | 04:31 |
|
benoitc
| any idee ? | 04:31 |
|
| ah | 04:31 |
|
| hum how to solve that | 04:31 |
|
spearce
| the reason is what if the working directory contained uncommitted changes? you can't resolve them remotely. :) | 04:31 |
|
| so you can checkout the branch you pushed into. | 04:31 |
|
| but if that is the current branch then you can just use `git status` to verify there are no uncommitted changes, and `git reset --hard` to reset the working directory. | 04:32 |
|
benoitc
| ok | 04:32 |
|
| thanks | 04:33 |
|
| cthere are some changes not commited but i don't know why they are there, semes this is a pb with date and fs | 04:33 |
|
spearce
| if you are going to push into a repository with a working branch push into a branch that isn't the one used by that repository; then when you want to update the working directory just use `git merge that-branch` to merge the pushed changes into the current branch (or fast-forward to them if there isn't a merge required). | 04:33 |
|
benoitc
| ic let's go for a try :) thanks | 04:34 |
|
| spearce notes this is maybe the 10th time he's answered that on irc. | 04:34 |
|
spearce
| clearly we have some sort of documentation or usability issue in git. | 04:35 |
| ← mchehab left | 04:37 |
|
benoitc
| :/ | 04:37 |
|
| doc isn't so easy to understand yes | 04:38 |
|
| or some sample missed in http://www.kernel.org/pub/software/scm/git/docs/everyday.html | 04:39 |
|
spearce
| we've done a lot of work on it in 1.5, but it still has room for improvement. | 04:39 |
| → Romster joined | 04:42 |
|
benoitc
| hum didn't see teh doc for 1.5 :) i work on 1.4.4 right now so it may be better ;) | 04:43 |
|
spearce
| Junio hasn't announced 1.5 final yet; its slated for mid Feb. | 04:46 |
|
| spearce tries to make bash suck less... | 04:51 |
| → xjjk joined | 04:53 |
| ← warthog9 left | 05:16 |
|
DrNick
| hmm. "git branch -d A B" will only check A for strict subset-ness | 05:41 |
|
spearce
| that's a bug. | 05:42 |
|
| HUUUUGE bug. | 05:42 |
|
DrNick
| no, it doesn't delete B | 05:42 |
|
| it just complains about A and then suggests -D | 05:42 |
|
spearce
| what version? I thought someone patched that to complain and try B anyway. | 05:42 |
|
DrNick
| 1.4.4.2 | 05:43 |
|
spearce
| oh, yea, upgrade. :) | 05:43 |
|
DrNick
| release a new version and I will | 05:43 |
|
spearce
| 1.4.4.3 is out. | 05:43 |
|
| master is quite stable too. | 05:43 |
|
DrNick
| not stable enought to get into fedora extras | 05:44 |
|
spearce
| oh, yea. its probably stable enough, but its updated far too frequently to be repackaged. | 05:44 |
|
| the change you want is in master, but not 1.4.4.3. so it'll be in 1.5.0. | 05:44 |
|
| Junio has gotten a little feature-greedy with 1.5. There's a huge number of really nice things added between 1.4.4.4 and 1.5. | 05:52 |
|
| but why not just run your own private copy of git in ~/bin, built off git.git's master on a regular basis? | 05:55 |
|
Romster
| whats the best way to copy files from one branch to another in the same working copy of git? or do i have to co the new branc then add the files from the other branch? | 05:59 |
|
| s/branc/branch/ | 05:59 |
|
spearce
| no real 'best' way, there's lots of ways to do it. | 06:00 |
|
| if its a large number of files and you aren't a git-kungfu-master then cloning the repository, checking out the other branch in the clone and copying them over then adding them is probably the easiest. | 06:00 |
|
| (`git clone -l -s` will be faster for that clone) | 06:01 |
|
| and maybe even -n to git clone as you will just checkout another branch anyway. | 06:01 |
|
| if its just one or two files you can use 'git show' (or if your git is too old, git cat-file -p) to dump the file content to stdout, and redirect that to the desired path. | 06:02 |
|
Romster
| well tryed and proven way thats not alot of effort and not gonna bork on me then :) | 06:02 |
|
spearce
| git's internal storage format won't care how you copied the files, it will still perform delta compression for space savings. | 06:03 |
|
| the only difference in the techniques is the time it takes you to perform the copy operation itself. | 06:03 |
|
Romster
| i'm on 1.4.4.3 currently.. | 06:03 |
|
spearce
| yea, git-show doesn't do that trick there. | 06:03 |
|
Romster
| figures :P | 06:04 |
|
spearce
| 1.5.0, which isn't released yet. ;-) | 06:04 |
|
Romster
| i could goto 1.5 but dunno if thats wise. | 06:04 |
|
| spearce reminds himself not everyone runs bleeding edge git. | 06:04 |
|
DrNick
| did git have a bug where it corrupted internal libc state? | 06:05 |
|
| w.r.t. exit() and glibc's lockfile.c ? | 06:05 |
|
Romster
| well i run some svn head ports :) | 06:05 |
|
| and cvs but no git ones yet :/ | 06:05 |
|
spearce
| DrNick: not that i've known of, but i don't tread in that code often. | 06:05 |
|
Romster
| sounds like a co be best as the new branch dosn't exist yet, but will in a moment. | 06:06 |
|
DrNick
| "git branch -D A B" went into an infinite loop after exit() was called | 06:06 |
|
Romster
| after i figure out how to makea new branch then add fiels then edit them. | 06:06 |
|
spearce
| DrNick: i don't see anything sticking out in the commit history for such a bug. | 06:07 |
|
DrNick
| oh, wait, glibc doesn't have a lockfile.c. this is git | 06:09 |
|
| and atexit(), I assume | 06:09 |
|
| how many lockfiles does branch deletion require? | 06:09 |
|
spearce
| yea, we setup structures in memory to purge left over lock files during termination, in case someone dies internally while a lock is open. | 06:10 |
|
| 1, for the branch in question. | 06:10 |
|
DrNick
| well, that's not good | 06:10 |
|
spearce
| but you are using 1.4.4.3 aren't you? that doesn't have the builtin branch command, which means it should be using just rm to remove the branch. | 06:10 |
|
| wait, never mind, it is the c version. | 06:10 |
| → merlyn joined | 06:11 |
|
DrNick
| and packed-refs | 06:11 |
|
merlyn
| is there any way to convert an object stash that uses an alternate into a completely local stash? | 06:11 |
|
| git-repack -a doesn't seem to do it | 06:11 |
|
spearce
| merlyn: using an alternate via objects/info/alternates ? | 06:12 |
|
merlyn
| yes | 06:12 |
|
| I want to remove that | 06:12 |
|
| to make this archive standalone | 06:12 |
|
spearce
| i can't think of one that's easy except to clone this repository and then move the clone's packfiles into this repository's pack directory, delete the alternate, and repack. | 06:13 |
|
| total pita. | 06:13 |
|
merlyn
| Oh, I can just add the other pack in... it'll use it if it needs it, right? | 06:13 |
|
spearce
| yup | 06:13 |
|
merlyn
| can I just blindly mv the .pck and .indexd in? | 06:13 |
|
spearce
| or you can repack the source you are borrowing from, then copy its packs and their indexes into this new repository. | 06:13 |
|
| yup | 06:13 |
|
merlyn
| do I need to edit info/pack ? | 06:14 |
|
| or does it figure that out | 06:14 |
|
spearce
| no. you just have to watch out for any loose objects that aren't in a pack yet that are needed. | 06:14 |
|
merlyn
| ok | 06:14 |
|
spearce
| the info/pack file is only needed for web publishing. you can run update-server-info to correct it. | 06:14 |
|
| (if needed) | 06:15 |
|
cehteh
| is there a simple command which shows in which branch i am, useable for scripting (without parsing the output of git-branch) | 06:16 |
|
merlyn
| that seemed to do it, thanks | 06:16 |
|
spearce
| cehteh: git-symbolic-ref HEAD | 06:16 |
|
cehteh
| ah .. almost ;) | 06:16 |
|
| basename $(git-symbolic-ref HEAD) | 06:17 |
|
spearce
| merlyn: maybe Junio knows an easier way to do that, but i certainly don't. and if there isn't a better way then maybe we should put an option in for repack (e.g. repack --standalone). | 06:17 |
|
cehteh
| thnaks | 06:17 |
|
merlyn
| I'm trying to update my git.git repo to use the "new" standard | 06:17 |
|
spearce
| cehteh: only if the branch doesn't have '/' in its name. :) | 06:17 |
|
merlyn
| and I didn't want to redownload everythign | 06:17 |
|
| so I did git-clone --reference old.git | 06:17 |
|
| but I thought git-repack -a -d would unfold the alternates | 06:18 |
|
cehteh
| mhm can tags have / in their name? | 06:18 |
|
spearce
| merlyn: apparently not. | 06:18 |
|
| cehteh: tags and branches can, yes. | 06:18 |
|
| spearce decides to write a repack --standalone patch... | 06:19 |
|
cehteh
| git-symbolic-ref HEAD | cut -d/ -f 3- | 06:20 |
|
merlyn
| Hmm. git-pull . origin now broke | 06:20 |
|
| do I need to edit refs/heads/origin now? | 06:20 |
|
spearce
| merlyn: actually you should delete refs/heads/origin as that should now be origin/master (refs/remotes/origin/master to be exact). | 06:21 |
|
merlyn
| I have scripts that say "git-pull . origin" | 06:21 |
|
| because that's the old way to do it | 06:21 |
|
| what's the proper way now? | 06:21 |
|
DrNick
| spearce: I can replicate it fairly easily. mkdir test; cd test; git init-db; touch blah; git add blah; git commit; git checkout -b A; touch a; git-add a; git commit; git checkout master; git checkout -b B; touch b; git-commit b; git checkout master; git repack -a -d; git pack-refs --all --prune; git branch -D A B; | 06:21 |
|
cehteh
| and aliases are not shell-expanded or something like that? | 06:22 |
|
spearce
| merlyn: the `git pull . origin` should still work as that will expand into `origin/HEAD`, which should be same as `origin/master`. | 06:22 |
|
| but `origin/master` is probably the preferred way now. | 06:22 |
|
merlyn
| no - it says "no such remote ref refs/heads/origin" | 06:22 |
|
DrNick
| spearce: print *lock_file_list | 06:22 |
|
| $7 = {next = 0x8868b0, filename = "\000git/packed-refs.lock", '\0' <repeats 4074 times>} | 06:22 |
|
spearce
| ceteh: not sure i understand that comment about shell aliases. | 06:23 |
|
cehteh
| git [alias] | 06:24 |
|
spearce
| DrNick: i'm not on a glibc based system, so i probably can't reproduce the breakage you are seeing. | 06:24 |
|
cehteh
| [alias] | 06:24 |
|
| sign = tag -s -f -m 'automatic generated on last commit' signature | 06:24 |
|
DrNick
| spearce: it isn't glibc at all | 06:24 |
|
cehteh
| i just want to add the branchname in signature | 06:24 |
|
DrNick
| spearce: see above where I realize that lockfile.c is a git file, not a glibc file | 06:24 |
|
merlyn
| ok - I copied refs/remotes/origin/HEAD (which was a "ref: .." link) to refs/heads/origin | 06:24 |
|
| and now my script works | 06:24 |
|
spearce
| cehteh: no, our aliases aren't shell expanded. | 06:25 |
|
| merlyn: Oh, its `git pull origin` that expands into `git fetch origin; git pull . origin/HEAD`. | 06:26 |
|
| DrNick: Lets see if i can cause this... | 06:27 |
|
merlyn
| Hmm. so I need to remove the . now? | 06:27 |
|
| that won't work with my older git archives. | 06:28 |
|
| Unless I move some things around | 06:28 |
|
spearce
| merlyn: removing the dot would break behavior as the fetch would run as part of the pull. | 06:28 |
|
Romster
| hrmm couldn't i use rebase? | 06:29 |
|
merlyn
| ok - so my edit was the only thing I could do | 06:29 |
|
| there's no behavior to get back to what I was doing otherwise | 06:29 |
|
| what's the normal behavior to git-clone and then track? | 06:30 |
|
spearce
| Romster: maybe, it depends on what you are trying to do. :) | 06:30 |
|
merlyn
| shouldn't I be saying "git-pull something" | 06:30 |
|
| without having to edit any config? | 06:30 |
|
spearce
| merlyn: yes, `git pull origin`. | 06:30 |
|
| you were doing `git pull . origin`, which meant you must have done `git fetch` previously yourself. | 06:30 |
|
merlyn
| you just said <spearce> merlyn: removing the dot would break behavior as the fetch would - run as part of the pull. | 06:30 |
|
| which is it now? | 06:30 |
|
Romster
| keep existing branch as it is basicky copy some files over and then edit and commit them in the new branch and work on 2 diferent versions of branches for a period of time before droping the old branch. | 06:31 |
|
merlyn
| Yeah, I was doing the fetch separately | 06:31 |
|
| so will git-fetch with no args track all remotes still? | 06:31 |
|
spearce
| pull always runs fetch. but if you pass . as the first argument to pull the fetch doesn't really happen. which can be nice if you fetch, then unplug from the network and go away for a while and want to pull while offline. | 06:31 |
|
| git-fetch by default will now copy all remote branches into refs/remotes/<name>, e.g. refs/remotes/origin/{master,next,pu,todo} | 06:32 |
|
Romster
| use seperate remote is now default? | 06:33 |
|
spearce
| Romster: yes. | 06:33 |
|
Romster
| yay | 06:33 |
|
spearce
| DrNick: got your infinite loop in 1.4.4.3. | 06:33 |
|
Romster
| think i brought that topic up awhile ago :) | 06:33 |
|
spearce
| merlyn: you could keep the old layout, or still setup a remote to fetch into refs/heads/origin if you want to avoid changing your scripts. | 06:34 |
|
| but that's going to get more difficult as time goes on, as its not the default for git clone. | 06:34 |
|
merlyn
| the trouble is that I have to support both kinds of archives. :( | 06:34 |
|
DrNick
| spearce: I've reduced the test case | 06:35 |
|
spearce
| DrNick: Still get it with current 'master'. That's nasty. | 06:35 |
|
Romster
| i already use that option so i'm safe :) | 06:35 |
|
merlyn
| so the new version should be what... git-pull origin ? | 06:35 |
|
DrNick
| spearce: I'll email a test case | 06:35 |
|
merlyn
| and that should look at refs/remotes/origin/HEAD ? | 06:35 |
|
spearce
| merlyn: right, and that should also work in older repositories. | 06:36 |
|
| DrNick: thanks. this test case is already small, but if you can get a smaller one that would be nice. | 06:36 |
|
merlyn
| it doesn't tough | 06:37 |
|
| though | 06:37 |
|
| I've had trouble with that before | 06:37 |
|
| for example, the one I set up with git-svn says | 06:38 |
|
| ... fatal: 'origin': unable to chdir or not a git archive | 06:39 |
|
spearce
| merlyn: in prior versions of git `git pull origin` meant "fetch from remote origin the first branch listed in a Pull: line, then merge that into the current branch" | 06:39 |
|
merlyn
| so I can't use "git-pull origin" with that one | 06:39 |
|
spearce
| what was your .git/remotes/origin file? | 06:39 |
|
Romster
| git-rebase won't do it'll do the whole master to a branch or in my case branch to another branch, but i only want to branch a number of files.. | 06:39 |
|
merlyn
| there isn't one | 06:39 |
|
spearce
| merlyn: that's why you were fetching yourself before? setup a remote! :-) | 06:39 |
|
merlyn
| it's git-svn | 06:40 |
|
spearce
| Romster: you can't branch individual files, only the entire repository. | 06:40 |
|
merlyn
| it has its own fetching means | 06:40 |
|
Romster
| lol merlyn is doing it manually the ahrd way :/ | 06:40 |
|
| hard* | 06:40 |
|
merlyn
| I'm just trying to get my 11 archives to work with a common command | 06:40 |
|
| what is "git-pull origin" looking for? | 06:40 |
|
spearce
| merlyn: you mean your 'origin' is an SVN repository, so you can't just use git-fetch to update off it? | 06:40 |
|
merlyn
| right | 06:41 |
|
| git-svn maps a remote SVN to a local .git | 06:41 |
|
spearce
| .git/remotes/origin, which contains a URL: line and one or more Pull: lines. | 06:41 |
|
merlyn
| so I use git-svn to "fetch" it | 06:41 |
|
| spearce has used git-svn in the past unfortunately. | 06:41 |
|
merlyn
| and then git-pull to merge it to my master | 06:41 |
|
Romster
| spearce, ok so that leaves me to the co the wc add the new branch name then copy files over then commit them then, unless git as a simaler option in one of its commands todo this? | 06:41 |
| → kanru joined | 06:41 |
|
merlyn
| so I *can't* use git-pull origin universally. :( | 06:41 |
|
| merlyn sighs | 06:41 |
|
spearce
| merlyn: you are up a creek and we didn't give you a good paddle here. | 06:41 |
|
merlyn
| I need to keep using "git-pull . origin" then | 06:42 |
|
| and patch all *new* archives to work that way | 06:42 |
|
spearce
| What you could do is create .git/remotes/origin with URL: . and Pull: origin | 06:42 |
|
| then maybe `git pull origin` would work, assuming you can git-svn fetch first. | 06:42 |
|
| Romster: git checkout -b your-branch ? | 06:43 |
|
Romster
| ah yes i could do that to that be alot nicer | 06:43 |
|
merlyn
| well - ref/heads/origin is really "refs/remotes/git-svn" | 06:43 |
|
| can I just put refs/remotes/origin to point at that instead? | 06:43 |
|
Romster
| thanks spearce i didn't think of that one.. | 06:43 |
|
spearce
| merlyn: yup | 06:44 |
|
merlyn
| I'm confused by indirection. :) | 06:44 |
|
Romster
| silly that the simpilist ones are always the hardist to think of :? | 06:44 |
|
| :/ | 06:44 |
|
spearce
| merlyn: isn't indirection one of the key features of recent Perl? :) | 06:44 |
|
| recent being > Perl 4... | 06:45 |
|
merlyn
| heh | 06:45 |
|
Romster
| -b your-branch/directory would work too i hope. | 06:45 |
|
spearce
| Romster: that would make a branch called 'your-branch/directory'. i assume that's what you want? | 06:45 |
|
Romster
| well i want the new branch but there is a number of directorys i'd like to copy into the new branch each directory has a stack of files in it. | 06:46 |
|
| got about 30 directorys to copy into a new branch. | 06:47 |
|
spearce
| DrNick: your reduced test case works ok here on master. | 06:47 |
|
merlyn
| what is the point of branch.master.remote = origin? | 06:47 |
|
Romster
| theres over 500 or so in total :) | 06:47 |
|
merlyn
| just documentation? | 06:47 |
|
| or does anyone pay attention to it? | 06:47 |
|
spearce
| merlyn: pull looks at it as what to do when no argument is given, e.g. `git pull`. | 06:47 |
|
Romster
| origin is default so i drop using origin personally.. | 06:47 |
|
spearce
| we include it for 'documentation' reasons by default, as people can easily copy-n-paste. | 06:48 |
|
DrNick
| spearce: really? odd. | 06:48 |
|
merlyn
| it seems redundant that it has branch.master.merge = refs/heads/master | 06:48 |
|
| what OTHER ref would it be? | 06:48 |
|
spearce
| Romster: So you just want to branch the repository from a current version, then copy in those additional files and commit it, ok. | 06:49 |
|
merlyn
| what breaks if I change that? :) | 06:49 |
|
Romster
| copy the directorys over to the new branch then work on them yes | 06:49 |
|
spearce
| merlyn: refs/heads/todo. or whatever other ref the remote might have. you can safely delete it, or if you explicitly pass things to pull then these get ignored. | 06:49 |
|
| DrNick: gap between the keyboard and chair here; i missed including "git branch -D A B" in the end of the test script. it still fails. | 06:50 |
|
merlyn
| Uh - I don't understand | 06:50 |
|
| it's describing branch master | 06:50 |
|
| which is always refs/heads/master | 06:50 |
|
| so why is there a setting for that too? | 06:50 |
|
spearce
| merlyn: its describing the name of the branch in the remote repository to fetch into this branch by default. its just dumb luck in your case that both are called master. :) | 06:51 |
|
merlyn
| or is it saying when you're *on* branch master, and you say "pull", you oh... "merge" is from the perspective of the remote? | 06:51 |
|
| but there's no URL for this | 06:52 |
|
| how does it know which remote? | 06:52 |
|
spearce
| branch.master.remote | 06:52 |
|
merlyn
| damn - this is all confusing and underdocumented | 06:52 |
|
spearce
| that's been a big complaint lately... | 06:52 |
|
| spearce is trying to debug DrNick's infinite loop... | 06:52 |
|
merlyn
| wait.. I have "master" in both places | 06:53 |
|
| what are the two "master" referring to? | 06:53 |
|
| remote's master | 06:53 |
|
| and my local master? | 06:53 |
|
spearce
| yes | 06:53 |
|
| oh, nice, the lock file list is a circular list. cute. | 06:54 |
|
merlyn
| so I could say "remote = ." "refs = refs/remotes/git-svn" then | 06:54 |
|
| for my branch master | 06:54 |
|
| except then I couldn't pull into some other branch | 06:54 |
|
| easily, anyway | 06:54 |
|
spearce
| right | 06:54 |
|
merlyn
| wait... what if I edit the other entry | 06:55 |
|
| remote.origin.url = . | 06:55 |
|
| remote.origin.merge = refs/remotes/git-svn ? | 06:55 |
|
spearce
| i think more like: remote.origin.url=. remote.origin.fetch=refs/remotes/git-svn | 06:56 |
|
| then you can just do `git pull origin`, and omit the remote and merge entries under each branch. | 06:56 |
|
merlyn
| and that would merge my local archive's git-svn into whatever branch I'm checked out? | 06:56 |
|
spearce
| should, yes. | 06:57 |
|
Romster
| spearce, hrmm i'll do it the other way since i made a new branch i'll just deleate the directorys that arn't mine in the new branch then commit, that will also work too. | 06:57 |
|
spearce
| Romster: except that if you then merge your branch with another those directories will be missing in the merge result, as you deleted them. | 06:58 |
|
Romster
| great... ok how do i undo a branch, then make a new empty branch? | 06:59 |
|
| git is so confusing.. | 07:00 |
|
spearce
| Romster: git checkout -b newbranch oldbranch | 07:00 |
|
| oldbranch should be the version (or branch) you want to start over from. e.g. origin/master | 07:00 |
|
| then you can delete your current branch with git branch -D badbranch | 07:00 |
|
Romster
| i've doen a git checkout -b 2.3 | 07:00 |
|
| and i see all the same directorys as i have in 2.2 | 07:01 |
|
spearce
| because you created a branch named 2.3 from the branch you were already in, which was probably 2.2. | 07:01 |
|
Romster
| problem now is i only want the directorys i have created, and there contents the othrs will add theres when they are ready todo so. | 07:01 |
|
spearce
| try instead: git checkout -b my23 2.3 | 07:01 |
|
Romster
| but i don't have a my23 | 07:02 |
|
| would that create a blank new branch? | 07:03 |
|
spearce
| the point of the -b option to checkout is to create a new branch. | 07:03 |
|
| the second argument is the version to start the branch at. if you omit it it assumes whatever version you are currently looking at (aka HEAD). | 07:03 |
|
Romster
| yes a branch but only include some of the directorys and files from the wc | 07:04 |
|
| well i've branched 2.2 to 2.3 now | 07:04 |
|
spearce
| you can't branch part of the working copy in git. the *WHOLE THING* must be branched. | 07:04 |
|
Romster
| so your saying if i remove all directorys i don't own and then commit, it'll be bad later on for a merge, but the other devs would add there directorys in at a later date. | 07:05 |
|
| that is a royal pain... | 07:05 |
|
spearce
| that's a fundamental part of Git's design. | 07:05 |
|
Romster
| well i have the whole branch is it safe or not safe to remove everyhting int he new branch thats not mine? | 07:05 |
|
spearce
| not safe, as git will try to carry those deletes into any future merge. or into any patch you may format out. | 07:06 |
|
Romster
| others will add them with a co from the old branch or a copy to the new branch depending on there skill level with git. | 07:06 |
|
| ok how can i accomplish what i'm trying todo in a safe manner? | 07:07 |
|
spearce
| at this point i'm not quite sure what you are trying to accomplish. i've sufficiently confused both of us. :-( | 07:08 |
|
Romster
| i now need to remove the 2.3 branch i made first too. | 07:08 |
|
| :/ | 07:08 |
|
spearce
| so look at `git branch`, use `git branch -D bad` to remove any bad branches you don't want. | 07:08 |
|
Romster
| i would like a new branch number of 2.3 but blank, and copy over only directorys that i own in 2.2 into 2.3 | 07:08 |
|
spearce
| ok. odd usage i think but: git clone -n -l -s . ../my22; cd ../my22; git checkout 2.2; | 07:09 |
|
| that gets you a clone with 2.2 in it, right? | 07:09 |
|
Romster
| ok back to square one now removed the new branch i made. | 07:10 |
| → russell_ joined | 07:12 |
|
Romster
| -s The resulting repository starts out without any object of its own. | 07:13 |
|
| reading the man page b4 i do it.. | 07:13 |
|
merlyn
| hmm. will remote.origin.url = ., remote.origin.ref = refs/heads/origin still work? | 07:13 |
|
| that seems folded. :) | 07:13 |
|
spearce
| merlyn: yes | 07:13 |
|
Romster
| so no object of its own means its just a directory with the files in it.. not hardlinked. | 07:13 |
|
merlyn
| that would make "git pull . origin" and "git pull origin" mean the same thing | 07:13 |
|
spearce
| Romster: yes. its the cheapest clone type you can make, and probably only good for really transient uses, which this case is here. you just need a fast way to get your 2.2 version of files. | 07:14 |
|
| merlyn: yes... | 07:14 |
|
Romster
| thats the one spearce . | 07:15 |
|
merlyn
| wow... ok, that's twisted. :) | 07:15 |
|
Romster
| i know its a unuseall case i seem to pickthem dunno why :/ | 07:15 |
|
| ok that worked good so far.. | 07:17 |
|
| so now i remove what i don't want and commit it to 2.3 somehow? | 07:17 |
|
| add and comit* | 07:17 |
|
spearce
| so now you want to make a completely empty branch? and copy the files from ../my22 into it? | 07:18 |
|
Romster
| then remove my22, and use git checkout to switch branches and maintain as per normal. | 07:18 |
|
| yep spearce | 07:18 |
|
| i can remove all uneeded files/directorys out of my22 then somehow commit them to a empty 2.3 branch so only whats remaining in my22 gets added. | 07:19 |
|
spearce
| ok, easiest way to make an empty branch: cd ..; mkdir my23; cd my23; git init-db; cp -r ../my22/blah blah; git add blah; git commit | 07:19 |
|
Romster
| and the other devs will add there own stuff when they get to it. | 07:19 |
|
| ah ok | 07:20 |
|
| i can copy what i want from my22 to my23 then add and commit the inital import to 2.3 then, all this so i can avoid the deleate problem on a futuer merge :/ | 07:21 |
|
| looks to me a patch maybe in order todo what i'm doing. | 07:21 |
|
spearce
| its twisted because your 2.3 history isn't connected to your 2.2 history. | 07:21 |
|
| its not something the core git mailing list is really seeing as a feature... | 07:22 |
|
Romster
| well it would be nice to keep the history of the files/directorys that belong to me, but not to move the others into the branch, which isn't possable. | 07:22 |
|
| only what i own, they each copy what they work on into the new branch when they are ready todo that. | 07:23 |
|
| not sure if you get all of what i've been typing. | 07:23 |
|
| hard to explain | 07:23 |
|
spearce
| but if that winds up being nearly every file that is in 2.2, why not just branch off 2.2 to start 2.3? | 07:23 |
|
Romster
| theres about 500 directorys in 2.2 i only want to put 30 of them approx, into 2.3 | 07:24 |
|
| with history if possable, but it isn't compulsery | 07:25 |
|
| the useage is in a ports package system for a linux distro | 07:25 |
|
spearce
| ah. | 07:25 |
|
Romster
| as the cd iso version is named 2.2 and the new one will be 2.3 | 07:25 |
|
| but only the maintainer of the port/directory for each port, addes and modifys to comply with the new alterations | 07:26 |
|
spearce
| anyway when you are done committing into your my23 go back to your real repository and do: git fetch ../my23 master:2.3 | 07:26 |
|
| Romster thinks the penny just droped | 07:26 |
|
spearce
| that will copy the new 2.3 branch you started into your real directory. then you can throw away the ../my22 and ../my23 directories. | 07:26 |
|
Romster
| neat that'll work but loose the history of the new branch but maybe that might not be such a bad thing, dunno. | 07:27 |
|
| not sure if this is worthy of a patch case or not either. | 07:27 |
|
spearce
| the only history of your 2.3 branch is the initial import commit, but git fetch never loses history, it copies it exactly. | 07:28 |
|
| you lost history from 2.2 as you copied the files into an empty branch and made a new initial commit which had no parents. | 07:29 |
|
| spearce thinks he found DrNick's bug. | 07:29 |
|
russell_
| Q: i just git-cvsimport'd a repository and git-status is telling me "Changed but not updated:" and a bunch of files (about 83) are marked "deleted". what does that mean? | 07:30 |
|
spearce
| russell_: your working directory somehow doesn't match your HEAD revision (the tip). are you by chance on a case insensitive filesystem (e.g. FAT, NTFS, Mac OS X)? | 07:32 |
|
Romster
| hrmm | 07:32 |
|
russell_
| spearce: no, reiserfs | 07:32 |
|
Romster
| spearce, my22 will have history still? its the copy from my22 to my23 that'll loose the history? | 07:33 |
|
spearce
| Romster: correct | 07:34 |
|
| russell_: i'm afraid i'm not very familiar with the cvsimport program. i'm suspecting your working directory is just out of date relative to your current branch though, as that's what git status is saying. | 07:34 |
|
| if none of those changes are things that you did that you care about, you can try doing `git reset --hard` to make the directory match the most recent commit (as seen in `git log`). | 07:35 |
|
russell_
| i didn't make any changes, so i guess that's what i want to do | 07:35 |
| → jeffpc_ joined | 07:37 |
|
Romster
| spearce, so my next question would be is there anyway to copy directorys over in my22 to my23 while keeping the history, this isn't important but a nice to have(tm) | 07:38 |
|
spearce
| Romster: not without carrying in those 470 directories you don't want. | 07:38 |
|
Romster
| dosn't look like git fetch has any option todo selective fetching of files | 07:38 |
|
| that would be a nice option to have.. | 07:39 |
|
| as other devs can use that when they copy over there files/directorys to keep history. | 07:39 |
|
spearce
| Romster: probably never going to be supported, it breaks too many fundamental concepts. | 07:39 |
|
Romster
| does this become a worthy case? | 07:39 |
|
| hmmz | 07:39 |
|
spearce
| i think in this type of case we've suggested using a different Git repository for each package. | 07:40 |
|
Romster
| i can't think of any other way, other than steping on everyone else toes and merge everything and then let them edit there stuff :/ | 07:40 |
|
spearce
| but that means you have 500 repositories... | 07:41 |
|
Romster
| hrmm would work but yes thats a bit insane? | 07:41 |
|
spearce
| but then they have completely independent history, which may be what you want/need. | 07:41 |
|
Romster
| unless one made a bash script to git pull for each of there own packages. | 07:42 |
|
| it can then be merged with that history into the main branch though? | 07:42 |
|
spearce
| no, those repositories are completely independent and wouldn't ever be merged together. but then you might have one higher level repository which says what version of each package repository to include in a given release. | 07:43 |
|
Romster
| just wondering if i should talk this otu with the others before adding anything to 2.3 | 07:43 |
|
| out* | 07:43 |
|
| this all has 2 layers to it, 1 is some ports go on the iso, 2 they all get put into a rsync for a ports -u to update the package manager tree | 07:44 |
|
| i don't think 500 git repositorys sounds convenent | 07:45 |
| → xjjk joined | 07:45 |
|
spearce
| Gentoo said the same thing about one per package for their distro. | 07:45 |
|
Romster
| even though that would be expaned out to how many each dev maintains. | 07:45 |
|
| this is CRUX btw if your wondering :) | 07:46 |
|
spearce
| i guess i'm confused about why you are going from 500 directories to 470 in 2.3. | 07:46 |
|
Romster
| well the point is only what each person maintains includes them into 2.3 | 07:47 |
|
| if i added them all someone would bitch at me i bet :) | 07:47 |
|
| as most will need some alterations. | 07:47 |
|
| for example one major change is x11R6.8 to xorg 7.1 | 07:48 |
|
| so dependencys would change. | 07:48 |
|
spearce
| ah, ok. so you are using the missing directory to indicate its either dead or needs to be updated. | 07:48 |
|
Romster
| 2.3 is in testing but is lacking contrib ports atm, only has core and opt | 07:48 |
|
| precislely | 07:49 |
|
| can't think of any other easer ways todo what i'm doing? | 07:49 |
|
spearce
| see, what I would do here is make a branch off 2.2 for 2.3, make changes, and look at the set of directories which didn't change between 2.2 and 2.3 as the set which still needs to be updated, or should get deleted. | 07:50 |
|
| then later in the 2.3 dev cycle delete those which were never updated. | 07:50 |
|
Romster
| what you have told me i can manage todo, just won't have any histroy on the 2.3 other than from after the inital commit | 07:50 |
|
| hrmm | 07:52 |
|
| problem there is as soon as 2.3 shows up for contrib it'll rsync the 500 or so directorys not just the 30 or so (just estermating the numbers) but only the ones i maintian will get altered. | 07:52 |
|
spearce
| yea, that's a huge problem for you. | 07:53 |
|
Romster
| the rest will have to wait for the others to edit them, i don't think they would like it if i moved them to a 2.3/please-update/port setup | 07:53 |
|
spearce
| given that maybe what you are doing is the better route. | 07:53 |
|
Romster
| reseting the history for each new version wouldn't hurt i guess. | 07:54 |
|
| as its a new build. | 07:54 |
|
spearce
| you can graft the histories together, which can reconnect some of that history if you later need to. | 07:55 |
|
Romster
| ah ok, thats good to know. | 07:57 |
|
| time for a drink then to sort though this mess of directorys :/ | 07:58 |
|
| spearce, how many known linux distros that use git for there packages? | 07:58 |
|
| oviously they would hev done things diferently or put up with the problem i had. | 07:59 |
| → devogon joined | 07:59 |
|
spearce
| Romster: your's may be the first; i don't know of any offhand. | 08:00 |
|
Romster
| so typical i seem to find new cases that no one else has come across yet :P | 08:03 |
|
spearce
| heh, sorry. you may want to send a message to the git mailing list seeking more advice; there's a lot of brains on there. | 08:04 |
|
Romster
| thts later this is now :) | 08:04 |
|
| unless i hold off this for a while. | 08:05 |
|
| i can email the mailing list right now if i sign up or does someone have to allow me after reviewing my inclusing into the git ML? | 08:05 |
|
spearce
| its an open list, no subscription required for posting. | 08:07 |
|
Romster
| ah nice i'll post now then | 08:07 |
| → ferdy joined | 08:11 |
|
| spearce finally fixed DrNick's infinite loop bug. *sigh* | 08:17 |
| → lu_zero joined | 08:51 |
| → jeffpc__ joined | 08:59 |
| → ktne joined | 10:10 |
| → lyakh joined | 10:24 |
| → jeffpc_ joined | 10:25 |
| → benlau joined | 10:38 |
| → nud joined | 10:56 |
| → Oejet joined | 11:01 |
| → Debolaz2 joined | 11:24 |
| → Debolaz2 joined | 11:24 |
| Debolaz2 → Debolaz | 11:28 |
| → GyrosGeier joined | 11:49 |
| → chris2 joined | 11:53 |
| → benoitc joined | 12:15 |
|
chris2
| anyone git svnimport savy? i get lots of "Unrecognized path"s | 12:24 |
| → spuk- joined | 12:30 |
| → jeffpc_ joined | 12:52 |
| → timlarson_ joined | 13:39 |
| → kanru joined | 13:52 |
| → zoobieboots joined | 13:55 |
| ← zoobieboots left | 13:57 |
| → timlarson__ joined | 14:09 |
| → lyakh joined | 14:26 |
| → benoitc joined | 14:40 |
| → GeertB joined | 14:44 |
| → kanru joined | 14:53 |
| → borovic joined | 15:16 |
|
borovic
| conlang forum: http://yourconlangs.s4.bizhat.com | 15:16 |
|
| what do you think? | 15:17 |
| ← borovic left | 15:21 |
| → ag joined | 15:46 |
| → benoitc joined | 15:55 |
| → ferdy joined | 16:00 |
| → moh joined | 17:06 |
| → russell joined | 17:12 |
| → benoitc_ joined | 17:35 |
| → GyrosGeier joined | 17:40 |
| → russell joined | 17:49 |
| → andi5 joined | 18:03 |
| → GyrosGeier joined | 18:03 |
|
nud
| is there an equivalent to ~/.cvsrc for git ? | 18:22 |
|
| (it allows to specify default options for cvs commands) | 18:23 |
|
spuk-
| .gitconfig, but i'm not sure it has that | 18:46 |
|
| you can set aliases for commands, but not for existing commands | 18:48 |
|
nud
| in .cvsrc you put a line like diff -p and it uses the -p option automatically when you write cvs diff (for instance) | 18:49 |
|
spuk-
| i mean, not aliases named as existing commands | 18:49 |
|
nud
| yes, I could use bash aliases but it's less pretty and flexible ;-) | 18:50 |
|
spuk-
| yeah | 18:50 |
|
| but, maybe the option you want can already be set specifically in .gitconfig ? | 18:51 |
|
| check man git-repo-config | 18:51 |
|
andi5
| hm... can somebody explain (or link) to me what determines the colors between commits in the commit graph of gitk? | 18:51 |
|
anders_
| Is there some command to "dry-run" a merge? To check if it will manage to merge without conflicts. | 18:55 |
|
spuk-
| anders_: git-pull --no-commit? --squash? | 18:58 |
|
nud
| mh | 19:02 |
|
anders_
| spuk-: So doing git-pull --no-commit and checking if "git-ls-files --unmerged" is empty, is the best way? | 19:02 |
|
nud
| does git-svn commit commit to only one changeset into svn or commit each commit separately ? the man page is not very explicit and --help makes me think the latter | 19:02 |
|
| and MadCoder the former, so I'm a bit confused | 19:03 |
|
MadCoder
| if you specify a revision it commits ..that_rev in one piece afaict | 19:03 |
|
| dcommit commits every git patch separately | 19:04 |
|
| git commit is a bit confusing and low level and should not be used the doc says | 19:04 |
|
nud
| ah | 19:04 |
|
| so basically my mail just says "make commit-diff a synonym for commit"... | 19:04 |
|
MadCoder
| but I do too search for a git svn 'cherry-commit' (I suppose you're the one I answered to) | 19:05 |
|
nud
| MadCoder: yeah it's me | 19:05 |
|
MadCoder
| and I suppose my method is far from the best one | 19:05 |
|
| but it works for me | 19:05 |
|
| and I stick to it as it's for my corporate work, and that we're all at the same floor working on the svn, and I'm not concerned with race conditions | 19:05 |
|
nud
| MadCoder: so what you do is cherry-pick -n for each patch you want and then commit ? | 19:06 |
|
MadCoder
| I suppose a way to build an `aggregated branch` would be better | 19:06 |
|
| and then use git dcommit on it | 19:06 |
|
nud
| thinking of it you could as well commit them at once and then use dcommit | 19:06 |
|
| yep, that :-) | 19:06 |
|
MadCoder
| but I've found no $Madcoder-efficient way to do that | 19:06 |
|
| so I hope someone will say "doh, you stupid guy, you could do that doing that and that" | 19:07 |
|
spuk-
| anders_: don't know, i just trust the output message of git-pull :-p | 19:09 |
|
nud
| MadCoder: something like `for i in git-rev-list remote/git-svn..work; do git-cherry-pick -n $i; done; git-commit -a -m "SVN-friendly commit"; git-svn dcommit` ? | 19:11 |
|
MadCoder
| nope, not really | 19:11 |
|
| because in fact I have say commits A B C D | 19:12 |
|
| and I want to commit {A, C} then {B, D} | 19:12 |
|
| because they make more sense that way | 19:12 |
|
| in fact that's a thing I'd even like to do in git as well | 19:12 |
|
anders_
| spuk-: But I'm making a script that is supposed to run in the background. And check merge status. | 19:12 |
|
nud
| yep, that makes sense | 19:12 |
|
MadCoder
| because my master branch is often used like I use :wa in my editor, and some recombining of the diffs is better for the pushed diffs | 19:12 |
|
nud
| I do use git that way too | 19:13 |
|
MadCoder
| not to mention the "doh I commited a thing that do not compile" | 19:13 |
|
| it's really annoying as it breaks git bisect | 19:13 |
|
nud
| so I have "with comments from $somebody"-like commits and that would not be very pretty to push something like that | 19:13 |
|
MadCoder
| I'd really like to be able to merge changesets easily | 19:13 |
|
| I'm sure there is a thing to do that, but I've not managed to find it yet | 19:13 |
| → kanru joined | 19:17 |
|
spuk-
| anders_: hmm, check git-merge too, maybe you can just check the exit status | 19:18 |
|
| anders_: and, git-merge seems to use git-ls-files --unmerged to check merge status, so.. | 19:19 |
| → ilogger2 joined | 19:58 |
| → ferdy joined | 20:24 |
| → yann joined | 20:32 |
| → ilogger2 joined | 20:35 |
| → riddochc joined | 20:58 |
| → xjjk joined | 21:14 |
| → lyakh joined | 21:32 |
| → ilogger2 joined | 21:47 |
| → rkaway2 joined | 22:01 |
| → nud_ joined | 22:10 |
| rkaway2 → rambokid | 22:14 |
| → DrNick joined | 22:17 |
| → matled joined | 22:28 |
| → telmich joined | 22:28 |
| → PugMajere joined | 22:28 |
| → tokkee joined | 22:28 |
| → meyering joined | 22:28 |
| → dancor joined | 22:33 |
|
dancor
| i can't figure out how to use --diff-options with git diff | 22:33 |
|
| git-diff [ --diff-options ] | 22:34 |
| → matled joined | 22:34 |
| → telmich joined | 22:34 |
| → PugMajere joined | 22:34 |
| → tokkee joined | 22:34 |
| → meyering joined | 22:34 |
|
dancor
| how do i pass in say -bB to the underlying diff call | 22:34 |
|
| maybe i just don't understand what the man notation git-diff [ --diff-options ] means | 22:34 |
|
neuralis
| dancor: man git-diff-files to see the options | 22:37 |
| → ilogger2 joined | 22:39 |
| → ilogger2 joined | 22:40 |
|
robfitz
| I don't think there is even an option called '--diff-options' to git-diff. | 22:40 |
|
dancor
| so --diff-options means "actually use those otehr options literally" | 22:40 |
|
| and there is no -B equivalent | 22:40 |
|
robfitz
| Looks that way, I think it might be a left over. | 22:41 |
|
dancor
| ok | 22:41 |
| → matled joined | 22:43 |
| → telmich joined | 22:43 |
| → PugMajere joined | 22:43 |
| → tokkee joined | 22:43 |
| → meyering joined | 22:43 |
| → matled joined | 22:56 |
| → telmich joined | 22:56 |
| → PugMajere joined | 22:56 |
| → tokkee joined | 22:56 |
| → meyering joined | 22:56 |
| → bronson joined | 22:59 |
|
rambokid
| hm, is there something like git-cvsexportcommit for svn? | 23:05 |
|
robinr
| rambokid: git-svn is two-way | 23:06 |
|
rambokid
| oh, git-svn? just have git-svnimport here. do you have alink? | 23:07 |
|
merlyn
| "it goes both ways" :) | 23:07 |
|
| git-svn comes with the distro | 23:07 |
|
| presuming you have something from the last three months | 23:07 |
|
| which would be silly not to have, since git is still rapidly developing | 23:08 |
|
rambokid
| ubuntu edgy here | 23:08 |
|
merlyn
| well, you may want to track git devel then | 23:08 |
|
robinr
| I recommend v1.4.3 | 23:10 |
|
nud_
| rambokid: edgy is too old to ship git-svn | 23:10 |
| → pnatal joined | 23:11 |
|
rambokid
| yeah, figured. it has git 1.4.1 | 23:11 |
|
nud_
| I asked a backport for latest git but noone has done it here | 23:11 |
|
| s/here/yet/ | 23:11 |
|
| so you'll have to build it yourself I'm afraid | 23:11 |
|
robinr
| it is pretty simple to build (except maybe the docs) | 23:11 |
|
robfitz
| You should use the lastest version v1.4.4.3. | 23:12 |
|
nud_
| https://bugs.launchpad.net/products/edgy-backports/+bug/77012 <-- the request | 23:13 |
|
ruskie
| can anyone help me with setting up gitweb? | 23:22 |
|
robfitz
| What's the problem? | 23:22 |
|
ruskie
| http://ruskie.dtdm.org/repos/gitweb.cgi <-- I get a 403 here | 23:22 |
|
| I have a foo.git dir in the same dir | 23:23 |
|
| hmm | 23:24 |
|
robfitz
| ruskie: can you use a more recent version of git? | 23:24 |
|
| and gitweb | 23:24 |
|
ruskie
| only have 1.4.2 on it atm | 23:24 |
|
robfitz
| do you have gitweb.conf file? | 23:27 |
|
ruskie
| no | 23:27 |
|
| the config is still directly in the .cgi | 23:27 |
|
robfitz
| What is the value of $projectroot and $projects_list? | 23:28 |
|
ruskie
| /home/ruskie/public_html/repos | 23:28 |
| → gitster joined | 23:28 |
|
ruskie
| our $projects_list = "index/index.aux"; <-- hmm I guess this might be a prob | 23:28 |
|
| yup | 23:29 |
|
| that was it | 23:29 |
|
| thanks for the help | 23:29 |
|
robfitz
| no problem | 23:29 |
|
ruskie
| still need to setup webdav there :) | 23:30 |
| → ehird joined | 23:44 |
|
ehird
| is git "transparent" - i.e. will "rm" make it booboo in svn and will making a new file get picked up (of course, being able to exclude them) unlike in svn? | 23:45 |
|
| err. answer that tomorrow when i wake up. | 23:45 |
|
Spyro
| ... | 23:58 |