| 2009-10-18 |
|
Ilari
| nick0101: Then obtain clone of that repository on server. | 00:00 |
|
nick0101
| sudo adduser \ --system \ --shell /bin/sh \ --gecos 'git version control' \ --group --disabled-password \ --home /home/git \ git | 00:00 |
|
| I can do that | 00:00 |
| ← rudi_s left | 00:00 |
|
j416
| What variable to I have to set to be able to run git from outside the repo I want to work with? | 00:00 |
|
Ilari
| nick0101: 'git@localhost:gitosis-admin.git' or so... | 00:01 |
|
loops
| j416, export GIT_DIR=/path/to/git/.git | 00:01 |
|
j416
| GIT_DIR="/my/work/dir/.git" ? | 00:01 |
|
| great | 00:01 |
|
| thanks :) | 00:01 |
|
nick0101
| Ilari: thats right | 00:01 |
| → selckin joined | 00:02 |
|
Ilari
| nick0101: Now when you have clone, copy public key file from OS X machine to server (/tmp is good place to put it). | 00:02 |
|
nick0101
| ok, just a sec | 00:03 |
|
| done | 00:03 |
|
Ilari
| nick0101: You want the new key to get the same access rights as the key you have on server? | 00:04 |
| ← ntoll left | 00:04 |
|
nick0101
| Yeah | 00:04 |
|
Ilari
| nick0101: Open the admin keyfile in keydir/ of the clone. Copy the line from copied key to be second line of that file (leave the first line alone). | 00:05 |
|
| nick0101: How username of each key is determined in gitosis: If key is in file called 'foo.pub', then the username is 'foo'. | 00:06 |
| → jtdowney joined | 00:06 |
|
Ilari
| nick0101: This appiles even if you have multiple keys in the same keyfile. | 00:06 |
| ← ludde left | 00:07 |
|
Ilari
| nick0101: Sanity check: What does 'ls -l ~git/repositories/gitosis-admin.git/hooks/post-update' say? | 00:07 |
| ← ph^_ left | 00:08 |
|
nick0101
| '/media/mirror/git/repositories/gitosis-admin.git/hooks/post-update' | 00:08 |
|
sitaram
| try uppercase L | 00:08 |
| ← thiago_home left | 00:08 |
|
sitaram
| ls -L | 00:08 |
|
| or try ls -al /media/mirror/git/repositories/gitosis-admin.git/hooks/post-update | 00:08 |
| ← ph^ left | 00:09 |
| → jrmuizel joined | 00:09 |
| ← agib left | 00:09 |
|
nick0101
| -rwxr-xr-x 1 git admin 69 2009-10-12 20:42 /media/mirror/git/repositories/gitosis-admin.git/hooks/post-update | 00:09 |
|
sitaram
| good | 00:09 |
|
nick0101
| sorry, didn't grab the whole line | 00:09 |
|
| glad thats good :( | 00:10 |
| ← ThaDon left | 00:10 |
|
nick0101
| :) * | 00:10 |
|
sitaram
| goodno we just wanted to see those "x" bits | 00:10 |
|
nick0101
| alright | 00:10 |
|
Ilari
| nick0101: Now, add the modified keyfile, commit and push. | 00:10 |
| → qrush_ joined | 00:10 |
| → ThaDon joined | 00:11 |
| → hiffy joined | 00:11 |
|
hiffy
| hey dudes | 00:11 |
|
| so I have a 'class notes' git repo, and I just started a 'assignment' repo and it ocurred to me that it would make sense to have it inside my 'class notes' repo | 00:11 |
| → WALoeIII joined | 00:12 |
|
hiffy
| is there some painless way to merge/fold one into the other? | 00:12 |
|
Ilari
| hiffy: Make it submodule? | 00:12 |
|
nick0101
| Alright, commited | 00:12 |
|
hiffy
| adding it as a remote and merge does not seem right | 00:12 |
|
| Ilari: a submodule you say | 00:12 |
|
Ilari
| nick0101: Then push. After pushing try 'ssh git@<server>' from OS X box. It should complain something about SSH_ORIGINAL_COMMAND. | 00:13 |
|
nick0101
| correct | 00:13 |
| → Mezner joined | 00:13 |
|
j416
| hiffy: I would keep it separate, it would just be all tangled if you keep it together if class notes is not dependent of your assignment. But that's me.. | 00:14 |
| → dsch04 joined | 00:14 |
|
Ilari
| nick0101: Now you should be able to clone the gitosis-admin repo on OS X box. | 00:14 |
| ← DavidKlein left | 00:14 |
| → ilteris_ joined | 00:14 |
|
nick0101
| awesome, that worked | 00:14 |
|
hiffy
| j416: I just wanted to have a "school" repo I have up on github | 00:15 |
|
| so I don't have to create a new project for every assignment | 00:15 |
|
nick0101
| thanks a lot for the help! I really didn't want to use svn again | 00:15 |
|
j416
| hm i see | 00:15 |
|
hiffy
| j416: it is minor and maybe petty, but I'm curious if it's possible - thinking of it as a hierarchy of folders and all | 00:16 |
|
j416
| yeah | 00:16 |
|
Ilari
| nick0101: The case for adding new user that should be treated as its own: Add file called 'foo.pub' to keydir containing the public key(s) (one per line). Then open gitosis.conf and authorize user 'foo' to perform the wanted actions. | 00:16 |
|
j416
| i see what you want to achieve | 00:16 |
|
hiffy
| it kind of makes sense to have all my 'school related' stuff in one place :) | 00:16 |
| ← rodyaj left | 00:16 |
| ← dreiss left | 00:17 |
|
nick0101
| Ilari: Alright, I think I should be able to handle it, now that you've directed me to put the keys in the right place :) | 00:17 |
|
j416
| yeah.. | 00:19 |
| → _jason553839 joined | 00:19 |
|
j416
| it would be neat if you could create repo groups in github | 00:19 |
|
| that would simply correspond to a folder | 00:19 |
| ← priidu left | 00:20 |
|
loops
| hiffy, why not just add it as a remote into your school repo and push it up to github as a separate branch, no need to merge | 00:20 |
|
hiffy
| but it has virtually nothing in common | 00:21 |
|
| here a link to illustrate might make more sense | 00:21 |
|
loops
| doesn't matter... branches aren't required to have anything in common | 00:21 |
|
j416
| hiffy: you could make a new branch from scratch | 00:21 |
|
| from zero | 00:21 |
|
hiffy
| http://github.com/phillmv/notes/tree/master/fall2009/ suppose I want to slot in my assignment branch under a new folder that reads 'cps633' | 00:22 |
|
loops
| hiffy, i'm not saying it makes sense, i'm just saying you can dump everything into a single repo if that's _what you want_ | 00:22 |
|
hiffy
| loops: hah, fair enough | 00:22 |
|
loops
| hiffy, you've already started a separate repo for it, if you fetch that into your school repo, it will be a completely separate independent branch.. no merge needed | 00:23 |
|
j416
| hiffy: you're indenting your notes like source code lol | 00:23 |
|
hiffy
| j416: it makes a lot of sense in *my* mind | 00:24 |
|
j416
| yeah, it does to me too | 00:24 |
|
| very tidy :) | 00:24 |
| → jmatthews joined | 00:24 |
|
hiffy
| :D I was actually thinking of writing some form of syntax highlighter | 00:24 |
|
j416
| just, I never thought of that way before | 00:24 |
|
| ... :P | 00:24 |
|
hiffy
| for the branching and maybe some symbols for stuff for me to lookover later, so ## makes it RED AND BOLD | 00:24 |
| ← nick0101 left | 00:25 |
|
hiffy
| but... this is my last semester so not a lot of ROI | 00:25 |
|
j416
| I wish I had git in 2003 | 00:25 |
|
hiffy
| if I'm going to be typing it into vim and readin | 00:25 |
|
j416
| (when i started univ) :P | 00:25 |
|
hiffy
| ya | 00:25 |
| → qhoxie_ joined | 00:25 |
|
hiffy
| so much less overhead oer svn | 00:25 |
|
j416
| svn didn't make sense to me | 00:26 |
|
hiffy
| i would have copies of *all* of my assignments if I had git back from day one | 00:26 |
|
j416
| yeah | 00:26 |
|
| neat | 00:26 |
| → iron joined | 00:26 |
| ← fridim_ left | 00:26 |
|
j416
| hiffy: you could make one repo per class | 00:27 |
| → martianlobster joined | 00:27 |
|
j416
| then you have notes for that class in a 'notes' branch, and assignments in separate branches | 00:27 |
| ← kpreid_ left | 00:27 |
|
martianlobster
| is there a "git cp" command like in svn, "svn cp"? | 00:27 |
|
hiffy
| j416: Hm. True; that way I don't have such a clobbered history in case i actually need to revert it | 00:28 |
|
j416
| that's probably what I would do if I didn't keep it in separate repos | 00:28 |
|
hiffy
| for history class who cares not gonna need to revert commits | 00:28 |
|
j416
| hiffy: I think your notes there on github are covering two classes, right? | 00:28 |
|
| I'd make those two repos if there are assignments aswell | 00:28 |
|
loops
| martianlobster, no. | 00:28 |
|
hiffy
| but for actual code it would be a pain in the ass if i needed to revert and in the process undid abunch of other notes | 00:28 |
|
martianlobster
| loop thanks | 00:28 |
|
loops
| martianlobster, just cp a b; git add b | 00:29 |
|
hiffy
| I think submodule is prolly the way to go | 00:29 |
|
martianlobster
| loops ok makes sense | 00:29 |
|
j416
| I would probably prefix the repo names with university name or some other tag that makes them show together in a sorted list | 00:29 |
| ← qhoxie left | 00:29 |
| qhoxie_ → qhoxie | 00:29 |
| ← segher left | 00:29 |
|
j416
| hiffy: yes | 00:29 |
|
hiffy
| j416: Yeah... just feels lame to have a 'history essay' repo tho; it's acceptable for my 'implementation of tiny encryption algorithm' | 00:29 |
|
j416
| so separate branch for project stuff :) | 00:29 |
|
| hiffy: well, it's an essay right | 00:29 |
|
Ilari
| tiny encryption algorithm? Sounds weak. :-) | 00:30 |
|
j416
| Ilari: lol | 00:30 |
|
hiffy
| Ilari: hehe | 00:30 |
|
j416
| so that's an assignment in one branch "essay" and notes in your branch "notes" | 00:30 |
| → kpreid_ joined | 00:30 |
|
loops
| now with two-bit keys! | 00:30 |
|
hiffy
| and rebase whenever it's done | 00:30 |
|
j416
| then you can write your essay and don't worry about deleting text you think you don't need :) | 00:30 |
|
hiffy
| loops, Ilari ACTUALLY it's about as strong as DES iirc :B | 00:30 |
|
j416
| I've been using git for writing stuff, it's great. | 00:31 |
|
| 'writing-stuff' that is | 00:31 |
|
Ilari
| hiffy: I.e. Key is too short and likely the algorithm is bad. | 00:31 |
|
hiffy
| Ilari: I got the joke ;). It's just an actual real algo I didn't pull out of my ass http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm | 00:32 |
|
| 128bit keys | 00:32 |
|
| tho a theoretical attack brings it down to 117 bits or something | 00:32 |
|
loops
| j416, i've been looking for words and sentences in commit sha1's. waiting for divine revelation | 00:32 |
| Tank` → stsch | 00:33 |
|
Ilari
| DES is 56 bits... 3DES is 112 (both two- and three-key variants). | 00:34 |
| ← jrmuizel left | 00:35 |
| ← kpreid_ left | 00:36 |
| ← krawek left | 00:36 |
|
hiffy
| Ilari: actually the double DES has a theoretical attack of about 57 or 58 bits if you get to choose enough plaintexts | 00:36 |
|
j416
| loops: o_O | 00:36 |
|
| hiffy coughs | 00:36 |
|
j416
| :D | 00:36 |
| ← justin-george left | 00:37 |
|
hiffy
| I like the idea of all these security researches storing 2^57 strings of 56 bits | 00:37 |
|
| *researchers | 00:37 |
|
Ilari
| hiffy: I think one needs only few plaintexts for meet-in-the-middle attack against double DES. That's why triple DES is used (there the same attack brings it down to 112 bits). | 00:38 |
| ← loops left | 00:39 |
| → loops joined | 00:39 |
| ← _jason553839 left | 00:40 |
| ← loops left | 00:40 |
| ← pheaver left | 00:41 |
| → pheaver joined | 00:41 |
|
SRabbelier
| what's wrong with my vim configuration again if hitting up-arrow in insert mode adds an 'A' instead of going up? | 00:43 |
| ← __iron left | 00:43 |
| ← Yuuhi left | 00:43 |
| → DIDAVISION joined | 00:44 |
|
j416
| SRabbelier: the #vim guys should know. :) | 00:44 |
| → FFighter joined | 00:49 |
|
j416
| I wonder how many people use git locally and never do remote stuff because they have some kind of OCD | 00:53 |
|
Mikachu
| SRabbelier: probably wrong $TERM set | 00:53 |
|
SRabbelier
| Mikachu: partially solved by 'touch ~/.vimrc', but now ctrl+w isn't working, or backspace | 00:54 |
| → defectiv joined | 00:55 |
|
SRabbelier
| Mikachu: apparently I need to read ":he 'bs" | 00:55 |
| ← fr left | 00:56 |
| → fr joined | 00:56 |
| → kpreid_ joined | 00:56 |
|
Mikachu
| as for why it inserts an A, the up arrow literally sends esc [ A to the program | 00:57 |
| → kardan_ joined | 00:58 |
| → D joined | 00:58 |
| D → Guest90464 | 00:59 |
|
SRabbelier
| Mikachu: ah, interesting; learn something new every day | 01:00 |
| → Adlai`` joined | 01:00 |
|
sitaram
| (is also why sometimes when you hit Escape to get out of insert mode it takes a fraction of a second; the terminal emulkator is waiting for any other characters which would indicate an F-key eing pressed) | 01:01 |
|
^Einstein
| can git accept vanilla subversion commits and/or branch manipulation, or does it only work the other way around? | 01:01 |
|
sitaram
| being* | 01:01 |
|
SRabbelier
| sitaram: ah, cool | 01:02 |
|
| ^Einstein: what do you mean? | 01:02 |
| → jtaby joined | 01:05 |
| ← mbroeker left | 01:05 |
| → _jason553839 joined | 01:06 |
|
^Einstein
| SRabbelier: git-svn enables using git with subversion upstream repos, but is there a way a novice user can use svn to talk to a git repo with the git-svn plugin? | 01:07 |
|
SRabbelier
| ^Einstein: no | 01:10 |
|
| ^Einstein: that would be something you'd have to ask the svn people to create | 01:10 |
| → loops joined | 01:10 |
|
^Einstein
| SRabbelier: I didn't know if git-svn had an API that recognized when it was an svn client rather than a git client that was connecting, and behave appropriately. | 01:11 |
| ← mjf left | 01:11 |
|
SRabbelier
| ^Einstein: no, git-svn is a part of git, it is not a server | 01:11 |
| ← riverrat66 left | 01:11 |
| ← DIDAVISION left | 01:11 |
|
^Einstein
| git is both a client and a server, but subversion is not. | 01:11 |
|
SRabbelier
| ^Einstein: git is not a server | 01:12 |
|
^Einstein
| Just curious, that's all. | 01:12 |
|
SRabbelier
| ^Einstein: git _has_ a server, called 'git deamon', but the 'git' command is not a server | 01:12 |
|
^Einstein
| SRabbelier: with git there is less of a client-server model, because all clients are servers. Am I incorrect in that description? | 01:12 |
|
SRabbelier
| ^Einstein: that is incorrect | 01:12 |
| ← redondos left | 01:12 |
|
SRabbelier
| ^Einstein: clients are not servers | 01:12 |
| ← rotty left | 01:12 |
| → rotty joined | 01:12 |
| → bdimcheff joined | 01:12 |
|
loops
| Git is considered peer to peer, but practically speaking there are git clients and git servers | 01:13 |
| → redondos joined | 01:14 |
| ← warthog9 left | 01:15 |
| ← kardan| left | 01:15 |
|
j416
| pear-to-pear | 01:17 |
|
SRabbelier
| j416: I prefer apple-to-apple | 01:17 |
|
j416
| me too | 01:17 |
| ← Adlai` left | 01:20 |
| ← dwmw2_gone left | 01:22 |
| → VVSiz_ joined | 01:23 |
| ← vvsh left | 01:27 |
| ← _jason553839 left | 01:27 |
| ← Determinist left | 01:27 |
| ← iron left | 01:31 |
| ← martianlobster left | 01:31 |
| → Davey joined | 01:33 |
| → JasonWoof joined | 01:35 |
| ← orafu left | 01:35 |
| ← MisterN left | 01:35 |
| → orafu joined | 01:35 |
| ← lightcap_ left | 01:36 |
| ← defectiv left | 01:37 |
| ← Davey left | 01:37 |
| → Dashkal joined | 01:38 |
| → Davey joined | 01:40 |
| ← qrush_ left | 01:41 |
| ← VVSiz left | 01:42 |
| → warthog9 joined | 01:43 |
| → pheaver_ joined | 01:47 |
| ← pheaver_ left | 01:48 |
| → pheaver_ joined | 01:48 |
| ← pheaver left | 01:48 |
| → Hiron joined | 01:48 |
| pheaver_ → pheaver | 01:48 |
| ← jtaby left | 01:48 |
| ← kpreid_ left | 01:49 |
| → kpreid__ joined | 01:49 |
| → onigiri joined | 01:50 |
| → yaotti joined | 01:51 |
| ← jtdowney left | 01:55 |
| ← Hiron left | 01:58 |
| → Adlai``` joined | 02:02 |
|
djszapi
| Hello! | 02:02 |
|
| How can I view the differences betweem two branches ? | 02:02 |
|
| for the same named file. | 02:02 |
| → jrmuizel joined | 02:04 |
|
loops
| djszapi, git diff branch1:filename branch2:filename | 02:05 |
|
| djszapi, or git checkout branch1 ; git diff branch2 -- filename | 02:06 |
| ← jrmuizel left | 02:06 |
| → _jason553839 joined | 02:06 |
|
chuck
| how do I remove a folder from version control without actually removing the files | 02:11 |
|
loops
| chuck, git rm --cache <dir> | 02:12 |
|
chuck
| loops: thanks | 02:14 |
| → dreiss joined | 02:14 |
|
sitaram
| usually followed by adding it to .gitignore | 02:14 |
|
Ilari
| 'git diff branch1 branch2 -- filename' | 02:15 |
|
chuck
| sitaram: yes | 02:15 |
|
| removing the build directory from my iphone app's repo | 02:15 |
|
loops
| djszapi, ^^ Ilari | 02:16 |
| ← tazle_ left | 02:17 |
| ← tetha left | 02:17 |
| → tetha joined | 02:18 |
| ← WALoeIII left | 02:21 |
| → pheaver_ joined | 02:22 |
| ← Adlai`` left | 02:22 |
| → eno joined | 02:24 |
| ← _jason553839 left | 02:25 |
| → cytrinox_ joined | 02:25 |
| → JKac3BEq joined | 02:26 |
| ← JakeSays left | 02:28 |
| → JakeSays joined | 02:32 |
| ← onigiri left | 02:35 |
| ← eno__ left | 02:35 |
| ← cytrinox left | 02:37 |
| cytrinox_ → cytrinox | 02:37 |
| ← pheaver left | 02:39 |
| pheaver_ → pheaver | 02:39 |
| ← Buey left | 02:39 |
| → coolcat joined | 02:42 |
| ← kpreid__ left | 02:42 |
| → kpreid_ joined | 02:44 |
| → WALoeIII joined | 02:51 |
| ← Guest90464 left | 02:52 |
| → tjaway joined | 02:52 |
| ← kpreid_ left | 02:55 |
| → godsflaw joined | 02:56 |
| → godsflaw_ joined | 03:05 |
| ← tjafk left | 03:08 |
| → kpreid_ joined | 03:08 |
| ← tjaway left | 03:09 |
| → tjaway joined | 03:09 |
| ← Chillance left | 03:09 |
| → ryoma joined | 03:10 |
| ← Crewe left | 03:11 |
| ← LiamH left | 03:11 |
| ← godsflaw left | 03:13 |
|
dngor
| Is there a technical doc on git-svn fetch? | 03:15 |
|
SRabbelier
| dngor: technical doc? | 03:15 |
| → aresnick joined | 03:16 |
|
dngor
| I want to know how it works, and why it does something in particular. | 03:16 |
|
| If in svn I tag a directory rather than the whole trunk, git svn fetch creates two tags: svn/tags/tagname@rev and svn/tags/tagname | 03:17 |
| ← kukks left | 03:17 |
|
dngor
| The next svn commit's parent is the svn/tags/tagname@rev, so the svn/tags/tagname becomes a little dead-end branch. | 03:17 |
| ← coolcat left | 03:18 |
|
dngor
| They look like this: http://poe.dyndns.org/~troc/tmp/poe-svn2git/dead-end-branchlets.png | 03:21 |
|
loops
| dngor, if you dont get an answer here try on mailing list | 03:22 |
|
dngor
| Thanks. I'm also hitting th' web, 'cause it knows all. | 03:22 |
| ← Mezner left | 03:23 |
| ← FFighter left | 03:26 |
| → hyperair joined | 03:31 |
| ← dunolie left | 03:33 |
| ← kpreid_ left | 03:35 |
| → kpreid_ joined | 03:35 |
| → davido joined | 03:40 |
| → dunolie joined | 03:42 |
| → jaysern joined | 03:43 |
| → Mezner joined | 03:49 |
| → scarabx joined | 03:50 |
| ← hyperair left | 03:53 |
| ← Mezner left | 03:54 |
| → lenix^ joined | 03:55 |
| → Crewe joined | 03:56 |
| ← Dashkal left | 03:58 |
| ← Crewe left | 03:59 |
| ← Sho_ left | 04:07 |
| Adlai``` → Adlai | 04:14 |
|
jaysern
| i'm trying to pull from my git repo, and i'm getting a merge error | 04:15 |
| → jrmuizel joined | 04:16 |
|
jaysern
| error: Entry 'settings.py' not uptodate. Cannot merge. | 04:16 |
|
| fatal: merging of trees 94627dd66106d09aa59d340e3398596472c2c276 and c47d12800a1ea92e6e10d91f655b1e185ec7818f failed | 04:16 |
|
| Merge with strategy recursive failed. | 04:16 |
|
| does that mean i need to resolve the conflicts by hand ? | 04:16 |
|
sitaram
| jaysern: most people avoid merging, pulling, etc on a dirty tree | 04:16 |
| ← jrmuizel left | 04:17 |
|
jaysern
| what is a dirty tree ? | 04:17 |
|
sitaram
| no conflict to resolve; the merge didnt happen -- commit your stuff first then pull | 04:17 |
| → jrmuizel joined | 04:17 |
|
sitaram
| dirty tree is where you have unstaged/uncommitted changes to tracked files | 04:17 |
|
edenc
| w 31 | 04:17 |
|
loops
| you sank my battleship | 04:18 |
|
sitaram
| 31? thats a big grid (or I forgot how that game goes in detail!) | 04:18 |
|
loops
| heh.. details details | 04:18 |
|
jaysern
| on my local dev box, i try to do a commit -a | 04:18 |
|
| nothing added to commit but untracked files present (use "git add" to track) | 04:18 |
|
| and then when i try to push, it says everything up-to-date | 04:18 |
|
| so on my web server, i try to do a pull, but it tells me of the merge error | 04:19 |
|
sitaram
| jaysern: ok, this means that you have a local untracked file, caled settings.py, which the other guy has started tracking between your last pull and the current remote. Bringing it in would overwrite your local changes. | 04:19 |
|
| jaysern: 'git stash' is another way to deal with it, if you're not sure you want to commit your local stuff first | 04:19 |
|
jaysern
| ahh | 04:20 |
|
| i was tinkering with that file on the web server | 04:20 |
|
| what if i do want that file over written ? | 04:20 |
|
loops
| jaysern, just delete it and pull | 04:21 |
|
sitaram
| jaysern: just rm the file then (make sure it is shown in 'git status' as untracked) | 04:21 |
| ← Tichodroma left | 04:27 |
| ← kpreid_ left | 04:29 |
| → kpreid__ joined | 04:29 |
| → SRabbelier1 joined | 04:31 |
| ← SRabbelier left | 04:31 |
| ← Akufen left | 04:31 |
|
jaysern
| sweet! thanks guys | 04:32 |
| ← jrmuizel left | 04:35 |
| ← j416 left | 04:35 |
| ← ryoma left | 04:38 |
| ← sh1mmer left | 04:39 |
| → sh1mmer joined | 04:43 |
|
djszapi
| git diff master s_cube/maint -- Makefile.am | 04:45 |
|
| warning: refname 's_cube/maint' is ambiguous. | 04:45 |
|
| @Ilari, loops. It can't work ^^^ | 04:45 |
|
doener
| djszapi: probably you have refs/heads/s_cube/maint and refs/remotes/s_cube/maint | 04:45 |
|
| djszapi: try "git for-each-ref | grep s_cube/maint" to check | 04:45 |
|
djszapi
| git for-each-ref | grep s_cube/maint | 04:46 |
|
| 7253e66996a192df8b4843f9481316a9507d59da commit refs/heads/s_cube/maint | 04:46 |
|
| 142166438c373842bc9d3cd921ce13db0e980fe8 commit refs/remotes/s_cube/maint | 04:46 |
|
doener
| djszapi: see? :-) | 04:46 |
|
djszapi
| yes, thanks doener | 04:46 |
|
doener
| djszapi: you can disambiguate by adding heads/ or remotes/ | 04:46 |
|
djszapi
| okok | 04:46 |
|
| I understood | 04:46 |
|
| git diff master refs/remotes/s_cube/maint -- Makefile.am | 04:48 |
|
| djszapi ~/Munka/ArchLinux-devel/Projects/aurman $ | 04:48 |
|
| Do I need for similar method in case of master too ? | 04:48 |
| → jrmuizel joined | 04:49 |
|
doener
| djszapi: no, that succeeded without ambiguity. Makefile.am just doesn't differ between these two | 04:49 |
| ← jrmuizel left | 04:49 |
|
djszapi
| it differs. | 04:49 |
|
loops
| i'm sure this has been discussed on the list and rejected, but it seems to me heads/ should be assumed to disambiguate and user can supply remotes/ to override it | 04:50 |
|
djszapi
| http://pastie.org/659236 | 04:50 |
|
doener
| loops: heads/ is already assumed. That's why he got a warning, not an error | 04:51 |
|
| djszapi: that shows that you have uncommitted changes to Makefile.am, not that Makefile.am differs between any two branch heads | 04:51 |
| → jrmuizel joined | 04:51 |
|
loops
| doener, ah right you are. I don't think it's warning worthy either.. .warning is too scary | 04:51 |
|
doener
| loops: hm, and if you actually meant remotes/whatever? Without the warning, you'd not even know that it picked the "wrong" one | 04:52 |
|
djszapi
| doener what can I do now without committing anything, to make a backup from a branch on my computer and vimdiff with it the other branch ? | 04:52 |
|
loops
| doener, if you don't know the difference, how could you ever "mean" remotes/... | 04:52 |
|
doener
| loops: hm? I'd not assume that the user is at all times aware that he has heads/foo and remotes/foo | 04:53 |
|
loops
| oh crikey... indeed.. | 04:53 |
|
| loops crawling back under rock | 04:53 |
|
doener
| loops: he might very well know the difference, but might not be aware that he has two refs that have ambiguous shortnames | 04:54 |
|
| djszapi: difftool can drive vimdiff | 04:54 |
|
djszapi
| it's not the question | 04:54 |
|
| I've set it | 04:54 |
|
| the question is how can I view the difference between two branches without commiting them ? | 04:55 |
|
doener
| djszapi: hu? Branches consist entirely of committed stuff. And "git diff <branch_head_A> <branch_head_B>" will happily produce a diff between these two branch heads | 04:56 |
|
| djszapi: and difftool will do so using the configured diff tool | 04:56 |
|
| djszapi: but Makefile.am simply doesn't differ between the two refs you gave to "git diff" | 04:56 |
|
| djszapi: your paste just showed that it differs between "master" and your working tree | 04:57 |
|
| djszapi: you can pass just a single ref to "git diff" to diff that against the working tree, if that's what you want | 04:57 |
|
djszapi
| yes, how ? | 04:58 |
|
doener
| as I said, "git diff <single_committish>" | 04:58 |
|
| e.g. "git diff master" or "git diff remotes/s_cube/maint" or "git diff HEAD~5^2~3" | 04:58 |
|
djszapi
| ?? | 04:58 |
|
| What ? | 04:58 |
|
| Doener.. | 04:59 |
|
| I've got a file in master without being in stage, and the same situation in another branch, so without staging there too, but I'd like to view the diff between them. | 04:59 |
|
doener
| djszapi: you only have a single worktree/index. Your uncommitted changes are in there. They're not part of any branch | 05:00 |
|
tpope
| git diff branch1 branch2 -- file | 05:00 |
|
djszapi
| The comparable file are in separate branch without any staging. | 05:00 |
|
| tpope: pls. read back... | 05:00 |
|
| doener: I really can't understand | 05:00 |
|
| Is there only one index for Makefile.am e.g. ? | 05:01 |
|
| even more branch exists with modification for that file ? | 05:01 |
|
SRabbelier1
| djszapi: no | 05:01 |
|
doener
| djszapi: there's only one index, it's neither per branch nor per file | 05:01 |
|
SRabbelier1
| djszapi: there can be only 'uncomitted' version of a modified file | 05:01 |
| ← dreiss left | 05:01 |
| SRabbelier1 → SRabbelier | 05:01 |
|
doener
| djszapi: if you modify "foo" without committing, and then switch to another branch head, those changes are kept in your work tree and/or index | 05:02 |
| ← schmukkk left | 05:03 |
|
doener
| djszapi: http://git.pastebin.com/m4bbecbc7 | 05:03 |
|
| djszapi: the "M test" line tells that I had uncommitted changes that were carried along | 05:04 |
| ← lenix^ left | 05:16 |
| → lenix^ joined | 05:17 |
| ← aresnick left | 05:18 |
| ← kpreid__ left | 05:21 |
| → kpreid_ joined | 05:22 |
| → machrider joined | 05:23 |
| ← Bass10 left | 05:25 |
|
machrider
| are there any git commands that operate on a repository via URL, rather than fetching something locally? | 05:27 |
|
| i want to do some simply queries, like get the latest commit sha and message | 05:27 |
|
| simple* | 05:28 |
|
doener
| machrider: just fetch, push and ls-remote IIRC. Things like log, diff, blame, etc. require things to be present locally | 05:28 |
|
loops
| machrider, you can do git ls-remote <url> to get current sha1s and branch names | 05:30 |
|
machrider
| yeah, it's almost what i want :) | 05:30 |
| → lightcap_ joined | 05:31 |
|
loops
| machrider, well for more you have to follow doeners advice :o_ | 05:31 |
|
| :o) | 05:31 |
|
doener
| not much more you can do, except for fetching things, but then we break a pre-condition ;-) | 05:31 |
|
machrider
| fetch isn't the end of the world, but it's heavy. | 05:32 |
|
| but yeah. | 05:32 |
|
loops
| machrider, ah, you're looking for the message as well. you might be able to scrape it, if the site provides gitweb access | 05:32 |
|
doener
| or if you got ssh access: ssh $host 'git --git-dir=/path/to/.git branch -v' | 05:33 |
| → cjs_ joined | 05:35 |
|
machrider
| thanks guys. | 05:35 |
|
cjs_
| So it's possible to have a checkout that uses the repo files (i.e., the .git directory) from another checkout, right? Do I have my terminology correct? | 05:36 |
| ← jaysern left | 05:36 |
|
machrider
| cjs_: s/checkout/working copy, regargind terminology | 05:37 |
|
| regarding. jeez. can't type. | 05:37 |
|
loops
| cjs_, it's possible to have multiple working trees without needing complete copies of the repo .git in each | 05:37 |
| ← jrmuizel left | 05:37 |
|
doener
| cjs_: It's a rather uncommon setup, not sure if there's an "official" term, but the script that does the setup uses "workdir" for the combination of working tree + index + HEAD (+ maybe other things I forgot) | 05:37 |
|
| cjs_: a more common thing is to have a repo that uses the "alternates" mechanism | 05:38 |
| → jaysern joined | 05:38 |
|
machrider
| cjs_: the git-new-workdir script works well for me.. it's in contrib/ | 05:38 |
|
loops
| cjs_, the script doener mentioned is in the contrib directory in the official git.git repo | 05:38 |
|
cjs_
| Ah, ok; "repo" and "working copy" are the terms I'm looking for, I guess. And it's also possible to have a repo without a working copy, of course. So it should be possible to have a repo without a working copy, and a working copy in a separate directory based on that repo, right? | 05:38 |
|
loops
| repo without working tree = bare repository | 05:38 |
|
cjs_
| "alternates" mechanism? | 05:39 |
|
doener
| cjs_: with that setup, you have a full repo (i.e. independent refs), but an "alternate" that instructs git to look into other repos to find objets | 05:39 |
|
| s/objets/objects/ | 05:39 |
| → g3d joined | 05:39 |
|
doener
| cjs_: both setups have drawbacks. With a second workdir, you get into problems with more than one workdir has the same branch head checked out at the same time | 05:39 |
|
cjs_
| doener: Ah, thanks. That's not quite what I'm looking for. I'm actually kind of wanting to use (abuse?) git as a sort of backup solution. | 05:40 |
| ← lightcap_ left | 05:40 |
|
doener
| cjs_: sounds like you just want .git to not live at .git but at /random/path? | 05:40 |
|
cjs_
| doener: Mmm, I can imagine. Though things out to be ok if you're never making modifications in more than one workdir at once, right? I.e., modify, commit, and then a git co in another workdir should just get that update. Or does that not work? | 05:40 |
|
| Sorry, reset, I meant. | 05:41 |
|
doener
| reset --hard even (or checkout -f) | 05:41 |
| ← jaysern left | 05:41 |
|
doener
| both drop uncommitted changes | 05:41 |
|
loops
| cjs_, you might want to checkout http://eigenclass.org/hiki/gibak-backup-system-introduction there are 3 backup on top of git solutions mentioned there | 05:41 |
|
cjs_
| loops: Ooo, thanks! | 05:41 |
|
| And OCaml tools are a bonus, though not as much as Haskell tools would be. :-) | 05:42 |
| ← p_masho left | 05:43 |
|
cjs_
| So, I guess my questions would be, is it possible to have a working copy of only part of a repo (e.g., everything under /foo, but not anything under /bar, though /bar is in the repo), and is there some clever way to use a bare repo from across a network, without having a local copy. | 05:43 |
| → p_masho joined | 05:44 |
| ← g3d left | 05:44 |
| ← Davey left | 05:44 |
|
cjs_
| If you're curious about the application, I'm wanting to drop my entire e-book library into git, so that I can easily use it across multiple machines. However, though the interesting chunk is only a few dozen MB (at the moment), there happens to be an 11 GB gutenberg subdir that is not going to come anywhere near fitting on my laptop. | 05:45 |
|
doener
| cjs_: sub-checkout: not without trickery, and only read-only. Remote bare git-repo: Only if you can mount it (e.g. fuse sshfs) | 05:46 |
|
| cjs_: what you could do, is creating multiple repos (one for foo/, one for bar/) and another "super-repo". | 05:47 |
|
| cjs_: that super-repo could either have the other repos as submodules, or merge them using the subtree merge strategy | 05:47 |
|
cjs_
| Right, I was thinking of sshfs for that. As for read-only sub-checkout, hm, well, that doesn't give me anything over just running rsync. | 05:47 |
| → jtdowney joined | 05:47 |
|
doener
| cjs_: subtree merge: http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html | 05:47 |
| ← wagle left | 05:47 |
|
cjs_
| Hm. I thought about splitting the repos, but I start doing that with all of my stuff and I'm going to have a repo explosion. | 05:48 |
| → lightcap_ joined | 05:49 |
| → jaysern joined | 05:49 |
|
cjs_
| So, I guess I could handle that to a great degree with submodules, though. | 05:50 |
| ← jaysern left | 05:51 |
|
cjs_
| Hm. Well, it sounds as if what I probably want is just to keep standard (non-bare) repos on a host with gobs of storage space, and then just write a couple of simple rsync scripts to "pull" and "push" the appropriate subsets of those working copies to and from my laptop. | 05:53 |
|
sitaram
| cjs_: sorry; just came back. e-book == binary format file of some sort (like pdf)? why version control at all... (just curious...) | 05:55 |
|
| in other words, if you can't reasonably branch, merge, etc., all you need is a backup solution, not a VCS, no? | 05:56 |
|
cjs_
| Because I have multiple (usually 3 or 4, at least) copies of my ebook library, and when I deal with that with rsync, adds can get lost fairly easily. | 05:56 |
|
| I keep a partial copy on my laptop, a full copy on my home machine, another on my work machine, and I really should have a backup copy somewhere on a different continent, too. | 05:57 |
|
sitaram
| cjs_: multiple copies on multiple computers or multiple versions of the files even? | 05:57 |
| ← panfist left | 05:58 |
| → jaysern joined | 05:58 |
| qrush → qrush|away | 05:58 |
|
sitaram
| cjs_: I'd use unison to sync them up. One "unison profile" for each pair of locations. Use unison's builtin "ignore" facility to get only what you want. etc | 05:58 |
|
luke-jr
| cjs_: uh, omit --delete from rsync | 05:59 |
|
cjs_
| luke-jr: Yeah, but then I move a file, and I end up with multiple copies of it in other repos, which I then have to sort out manually. | 05:59 |
|
sitaram
| far be it from me to advocate something *other than git* on #git, but you're not using all the real power of git anyway in an situation like this | 05:59 |
| → JED3 joined | 05:59 |
|
sitaram
| aah -- moves unison doesn't handle well; even renames... if you do that very often you may waste a lot of bandwidth | 06:00 |
| → jtaby joined | 06:00 |
|
cjs_
| sitaram: I've looked at Unison, but because each arc in the graph has to be explicitly configured, it's not so convenient as git's automatic full mesh. | 06:00 |
| ← jtaby left | 06:00 |
|
cjs_
| Basically, with git I can transfer between any repo, any time, with no extra configuration. | 06:01 |
|
sitaram
| cjs_: git has an automaic full mesh? I thought you have to still set up each remote yourself? | 06:01 |
|
cjs_
| Nope. Just give it a repo URL and push or pull away. | 06:01 |
|
loops
| a remote is just a shortcut | 06:02 |
|
| So it's not required | 06:02 |
|
sitaram
| cjs_: yeah I see what you mean; it's a lot more cumbersome with unison -- at least a profile file with 2 URLs in it, one being the local directory and the other being the remote one | 06:02 |
|
| especially ifyou can type URLs fast enough, it doesn't even save you any time to say "unison lap-home" or "unison lap-work" | 06:03 |
|
cjs_
| Right. And then, git's automatic compression can be helpful for things like archives of log files, I'm thinking. | 06:03 |
| ← jaysern left | 06:04 |
|
sitaram
| you've got log files in an e-book library? ok then I retract what I started this with | 06:04 |
|
cjs_
| No, no. Different thing. | 06:04 |
|
dngor
| I can fix my dead-end branchlets with grafts. | 06:04 |
|
luke-jr
| cjs_: you might look into extending my gitbackup script | 06:04 |
|
cjs_
| But the same sort of problem: I have the master copy of my log files on the web server, but I need to back those up, I need to copy them to other machines for analysis, etc. etc. | 06:04 |
|
| luke-jr: where would I find it? | 06:05 |
|
luke-jr
| cjs_: Gitorious | 06:05 |
|
cjs_
| Ah. | 06:05 |
|
luke-jr
| for the log thing though, I'd probably use tail -F :p | 06:05 |
|
| gitbackups assumes that on average things don't change more than once every few minutes | 06:06 |
|
cjs_
| luke-jr: I'm not clear on how that would work. Let me describe my situation. I have three web servers, say, one primary and two backup ones, all in an identical configuration. The primary vanishes for whatever reason, I just switch the DNS to a backup. Each generates perhaps a few GB/year of log files. (Well, some backups may generate almost nothing.) I need to merge these, back up the merged version, etc. | 06:08 |
|
| I do this all with manual renaming, compression, and copying at the moment. But there's got to be a better way. | 06:08 |
| → bsdvodsky joined | 06:08 |
|
sitaram
| cjs_: merging in this sense is not the same as git's merging, I take it? | 06:09 |
|
cjs_
| Again, the partial working copy thing, if we had it, would seem as if it could be helpful. | 06:09 |
|
luke-jr
| sitaram: sounds like it is | 06:09 |
|
| though he'd need a custom merging algorithm | 06:09 |
|
cjs_
| sitaram: No, not really. | 06:09 |
|
luke-jr
| cjs_: either way, you're doing it semi-wrong :p | 06:10 |
|
| sounds like you should be using DNS round-robin | 06:10 |
|
cjs_
| I'm happy with, e.g., server1-current.log, server2-current.log, server1-2008-07.log, etc. | 06:10 |
|
sitaram
| cjs_: I'd just cat all the log files; each access *happened*, that's it; assuming timestamps are correct, maybe sort by time to get a combined access log | 06:10 |
|
luke-jr
| cjs_: oh, that will work easier | 06:10 |
|
sitaram
| aah so merge only at the directory level not file level | 06:10 |
|
cjs_
| luke: I could, if I wanted to distribute the load as well. But round-robin is not what you want when you're trying to deal with server failures, because if a server vanishes, you still have to remove it from the DNS. | 06:11 |
|
luke-jr
| cjs_: no, round-robin is also failover | 06:11 |
|
| if one IP is inaccessible, browsers automatically try the next | 06:11 |
|
cjs_
| luke-jr: They do? | 06:11 |
|
luke-jr
| provided they're in the same IP namespace anyhow | 06:11 |
|
| if all your IPv6 servers are down, it won't try IPv4 addresses | 06:12 |
|
cjs_
| Last I checked, browsers cached only a single address after a lookup, and continued to use that until it expired. | 06:12 |
|
luke-jr
| cjs_: if they did, they'd be broken :) | 06:12 |
|
| I've never had problems with it | 06:12 |
|
| and I intentially make servers in a round robin down once in a while | 06:13 |
|
| intentionally* | 06:13 |
|
| of course, that round robin is used by a game, not browsers much | 06:13 |
|
cjs_
| Hm. I'll have to have a look again. But the semantics of getting back 3 A records, in the DNS point of view, is not "use these until you find one that works," but pick any one of these and use it. | 06:13 |
|
luke-jr
| cjs_: and if it fails, try another | 06:13 |
|
| that's why they get 3 records | 06:13 |
|
| if it was merely random, the server would only send one | 06:13 |
|
cjs_
| luke-jr: That's an application level semantic. | 06:14 |
|
luke-jr
| cjs_: the standards say applications must do that, IIRC | 06:14 |
|
cjs_
| Do they? I don't recall that.... | 06:14 |
|
luke-jr
| actually, it's not even really application level | 06:14 |
|
cjs_
| Hm. I'll have to look into that again.... | 06:14 |
|
luke-jr
| the standard socket layer returns things in a way that applications really NEED to do that or they won't work | 06:14 |
| ← kpreid_ left | 06:15 |
|
luke-jr
| assuming they're not using ancient gethostbyname or such | 06:15 |
| → kpreid_ joined | 06:15 |
|
cjs_
| So, luke-jr, basically your positing that most application will call getaddrinfo, and work through that list until they find something to which they can connect successfully. | 06:16 |
|
luke-jr
| cjs_: anyhow, on your central backup box, ssh server1 tail -n 10000000 -F /var/log/foo.log > server1_foo.log | 06:16 |
|
| cjs_: if they don't, they will break in fairly normal circumstances | 06:16 |
|
| getaddrinfo will likely return the IPv6 address first, which many hosts are too stupid to connect to | 06:17 |
|
cjs_
| luke-jr: I run my backups the other way; servers push their backups to the backup server. | 06:17 |
|
luke-jr
| if they don't try the next one, they won't work with IPv4 | 06:17 |
|
| tail -n 10000000 -F /var/log/foo.log | ssh backup 'cat > server1_foo.log' | 06:17 |
|
cjs_
| Though, hmm, I suppose I could have a secure backup pull by making the files to back up available via rsync. | 06:18 |
|
luke-jr
| real-time log backups save you from script kiddies covering their tracks, too | 06:18 |
|
| could always aim for remote logging instead, as well | 06:19 |
|
| why make local log files when you can just configure Apache to log it remotely directly? :p | 06:19 |
|
| bed time for me, night! | 06:20 |
| → jaysern joined | 06:20 |
| → Sigma joined | 06:25 |
| ← yhager left | 06:28 |
| → savant joined | 06:32 |
| ← savant left | 06:32 |
| ← jtdowney left | 06:34 |
| → mbroeker joined | 06:38 |
|
rtyler
| hiyo folks; I see that through fast-export stuff you can export an hg repository | 06:39 |
|
| is it possible to keep a git repo in sync with hg? | 06:39 |
| → abadr joined | 06:40 |
|
abadr
| What if I want a branch to become master and want to drop any changes made to master since the branching? | 06:40 |
| ← Fragsworth left | 06:41 |
|
loops
| abadr, one way is.. git checkout master ; git reset --hard branch ; but it will throw away any uncommitted changes | 06:42 |
|
abadr
| uncommitted changes in master? | 06:43 |
|
| oh nm | 06:43 |
|
loops
| rtyler, check out hg-to-git in the contrib directory of the git.git repo, you can do incremental imports from an hg repo similar to git-svn | 06:43 |
|
| abadr, in your working tree | 06:43 |
| ← TriggerB left | 06:44 |
|
rtyler
| loops: you mean the github project? | 06:44 |
|
loops
| rtyler, no the official Git repository. Some distributions package hg-to-git up in an rpm or whatever as well | 06:45 |
|
abadr
| loops: I guess that worked, but I'm confused about what happened | 06:45 |
|
| where is the commit that got rid of all the recent stuff in the master branch? | 06:45 |
|
loops
| rtyler, git://git.kernel.org/pub/scm/git/git.git | 06:46 |
| → jrmuizel joined | 06:47 |
|
loops
| abadr, there was no commit made. The reset just made "master" point to the same series of commits that "branch" points to | 06:47 |
|
| rtyler is cloning now | 06:47 |
|
abadr
| interesting | 06:48 |
|
loops
| abadr, this was the wrong way to go if you're working on a public/shared repo | 06:48 |
|
| abadr, i should have asked first | 06:48 |
|
abadr
| I'm not | 06:48 |
|
| it's private | 06:48 |
|
| I guess I can delete the branch now. Are those post-branching commits to master anywhere now? I don't need them, just curious. | 06:48 |
|
loops
| abadr, yes you can delete the branch now. the commits that use to be referenced by master are now available in the reflog "git reflog master" | 06:49 |
|
voker57
| they are dangling, i think | 06:49 |
|
loops
| abadr, the reflog expires over time. Once they are no longer referenced anywhere, including the reflog, they are considered dangling and will be garbage collected | 06:50 |
|
| oops.. git reflog show master | 06:50 |
| → Ozzy joined | 06:51 |
| ← Ozzy left | 06:51 |
|
abadr
| interesting | 06:52 |
| ← scarabx left | 06:53 |
|
abadr
| is there a way to do the same thing that creates a commit instead? | 06:53 |
|
rtyler
| loops: any decent guides on how to use this sucker? | 06:53 |
|
loops
| rtyler, unfortunately none that i know of. | 06:55 |
| ← bdimcheff left | 06:55 |
|
loops
| abadr, not sure what you're shooting for there | 06:55 |
|
abadr
| well, this may not have been the right thing to do. it's not "public" in that other people use it, but I do sync to and from a remote from multiple places | 06:57 |
|
| not sure how to do that now | 06:57 |
|
rtyler
| loops: well drats | 06:57 |
|
loops
| abadr, yeah.. it's not recommended to do what we did on repos you're sharing.. even if it's only with yourself ;o) | 06:59 |
|
abadr
| loops: now what? :) | 06:59 |
|
loops
| abadr, PANIC! | 06:59 |
|
| abadr runs around screaming. | 06:59 |
|
loops
| abadr, 1 sec.. real life is intruding here | 07:00 |
| ← pheaver left | 07:00 |
|
dngor
| Is there a git command to find the child(ren) of an object? | 07:00 |
| → justin-george joined | 07:01 |
| → thiago_home joined | 07:03 |
|
loops
| abadr, okay.. sit down.. | 07:06 |
|
abadr
| lying down, in fact | 07:06 |
|
loops
| dngor, no. Git only has parent pointers | 07:06 |
|
| dngor, of course it could be written by searching | 07:07 |
| → drizzd joined | 07:07 |
| → kpreid__ joined | 07:08 |
| ← kpreid_ left | 07:08 |
| → priidu joined | 07:08 |
| ← jrmuizel left | 07:08 |
| → c15c8ra1n joined | 07:08 |
|
loops
| abadr, you could treat this like you're operating in a shared/public repo situation | 07:09 |
|
| abadr, that is you would never rewind master like we did with that reset | 07:10 |
|
abadr
| I'm listening | 07:10 |
|
loops
| abadr, instead you would use "git revert" to make _new_ commits that reverse the changes made by the commits you don't like | 07:10 |
|
| abadr, and then apply new changes on top of that | 07:10 |
|
| abadr, so when remote repos pull, all they see are new commits and they will be happy. even though some of those commits essentially undo or throw away existing commits | 07:11 |
|
abadr
| first, how do I get master back to the remote master? | 07:11 |
| ← sh1mmer left | 07:12 |
|
loops
| abadr, assuming you haven't made any more commits or done anything else.. git reset --hard HEAD@{1} | 07:13 |
| → aigon joined | 07:13 |
|
loops
| abadr, which reverts to the commit saved in the reflog (praise the reflog) | 07:13 |
|
abadr
| whew. ok | 07:13 |
|
loops
| abadr, did ya do that? | 07:14 |
|
abadr
| yep | 07:14 |
|
loops
| abadr, okay.. the reflog is a great safety valve for stuff like this | 07:14 |
|
fujin
| <3 reflog | 07:14 |
| → snokat joined | 07:15 |
|
snokat
| http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 | 07:16 |
|
| http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 | 07:16 |
|
| http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 http://vkontakte.ru/reg21901733 | 07:16 |
|
Adlai
| interesting | 07:17 |
|
abadr
| cool links bro | 07:17 |
|
loops
| not really | 07:17 |
|
Adlai
| I love how if you check which channels these spambots are in, they always pick #ubuntu | 07:17 |
| ← snokat left | 07:18 |
|
abadr
| loops: now what? :) | 07:18 |
|
loops
| abadr, doh.. yeah.. we're not done are we ;o) | 07:18 |
|
| abadr, okay this should work... git checkout branch ; git merge -s ours master ; git checkout master ; git reset --hard branch" | 07:21 |
| ← justin-george left | 07:22 |
|
loops
| abadr, that assumes that branch and master have a common ancestor at some point.. ie. diverged from each other | 07:22 |
|
abadr
| yep | 07:22 |
| → hyperair joined | 07:22 |
|
abadr
| hey, I think that worked | 07:26 |
|
loops
| abadr, it should. you should double check cause i'm not in top form tonight ;o) | 07:26 |
| → jjuran joined | 07:26 |
|
abadr
| well i've learned from you anyway :) thanks for all your help | 07:26 |
| → siprbaum joined | 07:27 |
|
loops
| abadr, np, good luck with it | 07:28 |
| ← aigon left | 07:30 |
| → Aikawa_ joined | 07:42 |
| → ph^ joined | 07:42 |
| ← JED3 left | 07:45 |
| ← sdboyer left | 07:48 |
| → Guest33124 joined | 07:51 |
| ← Aikawa left | 07:54 |
| ← cloudhead left | 07:54 |
| → ciskje joined | 07:55 |
| → dreiss joined | 08:01 |
| ← kpreid__ left | 08:01 |
| → kpreid_ joined | 08:01 |
| → PerStrandh joined | 08:02 |
| ← machrider left | 08:02 |
| ← warthog9 left | 08:03 |
| ← Azeroth-Work left | 08:04 |
| → segher joined | 08:06 |
| ← qhoxie left | 08:09 |
| ← abadr left | 08:09 |
| ← yaotti left | 08:10 |
| ← PerStrandh left | 08:14 |
| → ludde joined | 08:15 |
| → jfxberns joined | 08:18 |
| → Yewbacca joined | 08:21 |
| → abadr joined | 08:25 |
| ← jaysern left | 08:27 |
| → ph^_ joined | 08:29 |
| → Adlai` joined | 08:30 |
| ← Adlai left | 08:30 |
| Adlai` → Adlai | 08:30 |
| ← ciskje left | 08:34 |
| → j416 joined | 08:35 |
| VVSiz_ → VVSiz | 08:35 |
| → pantsman joined | 08:36 |
| ← lightcap_ left | 08:39 |
| → xide joined | 08:39 |
| → relix joined | 08:39 |
|
xide
| i need 9 ppl to register at this link, that's kinda of a promotion in the russian facebook) sum1 do me a favour, spend 2 minutes of ur life and follow this link http://vk.com/reg480180 | 08:39 |
|
thiago_home
| no | 08:42 |
|
djszapi
| How can I delete the files that are under revision control, but they took part in the .gitignore file, something similar like git-clean -x without removing the untracked files. | 08:42 |
|
thiago_home
| djszapi: git clean removes untracked files only | 08:42 |
|
| djszapi: it never removes tracked files | 08:42 |
|
| djszapi: to remove tracked files, use git rm | 08:43 |
| ← abadr left | 08:43 |
| → mmarsu joined | 08:43 |
|
djszapi
| Normally, only files unknown to git are removed, but if the -x option is specified, ignored files are also removed. This can, for example, be useful to remove all build products. | 08:43 |
|
| git clean --help | 08:44 |
|
thiago_home
| djszapi: right | 08:44 |
|
| djszapi: but I didn't say ignored | 08:44 |
|
| djszapi: I said git clean removes untracked files | 08:44 |
|
| djszapi: files that are tracked are not untracked. So git clean will not remove them. | 08:44 |
|
djszapi
| -X | 08:45 |
|
| Remove only files ignored by git. This may be useful to rebuild everything from scratch, but keep manually created files. | 08:45 |
|
thiago_home
| djszapi: a file that is tracked is not ignored. | 08:45 |
|
djszapi
| Ah-ok | 08:45 |
|
Aides
| xide, get a life | 08:45 |
|
djszapi
| Okay, then how can I delete automatically the files from .gitignore rules ? | 08:45 |
| → DavidKlein joined | 08:45 |
|
thiago_home
| djszapi: parse the rules and execute git rm for each of the files that match | 08:46 |
| ← DavidKlein left | 08:46 |
| → DavidKlein joined | 08:46 |
|
doener
| djszapi: git ls-files -c -i --exclude-standard -z | xargs -0r git rm --cached | 08:47 |
|
djszapi
| thanks. | 08:47 |
|
loops
| djszapi, git rm $(grep -v '#' .gitignore) | 08:48 |
|
djszapi
| thanks both of them. | 08:48 |
|
doener
| loops: that lacks the --cached part, and doesn't handle !rules | 08:48 |
|
loops
| doener, details details... but you're right of course ;o) | 08:48 |
|
doener
| (and the grep should look for '^#' | 08:49 |
|
loops
| bah... now yer just being pedantic | 08:49 |
|
djszapi
| hehe | 08:50 |
|
loops
| it works on the vast majority of .gitignore's, but there are a few corner cases like you say | 08:50 |
| ← dreiss left | 08:50 |
|
doener
| loops: makes a difference for e.g. linux-2.6.git ;-) | 08:50 |
|
| loops surrenders to reality and admits it was a horrible suggestion | 08:51 |
|
loops
| not to mention somebody could put /* in the .gitignore | 08:52 |
|
| i want it out of the archives now :oP | 08:52 |
| ← xide left | 08:53 |
|
doener
| loops: "fatal: '/*' is outside the repository" | 08:53 |
|
loops
| yeah.. saved by "git rm" | 08:53 |
| ← c15c8ra1n left | 08:53 |
|
loops
| i think i'll cut my losses and go fill out that form for xide | 08:53 |
|
doener
| nooooo | 08:54 |
|
loops
| heh | 08:54 |
|
| doener will be more careful next time | 08:54 |
| ← pantsman left | 08:54 |
| ← kpreid_ left | 08:54 |
| → kpreid_ joined | 08:54 |
| → warthog9 joined | 08:55 |
| ← mmarsu left | 08:57 |
| → ixti joined | 09:05 |
| ← TheUni left | 09:06 |
| → TheUni joined | 09:06 |
|
djszapi
| How can I use git am from command line efficiently ? | 09:08 |
|
selckin
| man git-am | 09:08 |
|
Gitbot
| selckin: the git-am manpage can be found at http://git.or.cz/man/git-am | 09:08 |
|
djszapi
| I use it now from mutt, because the mail filenames isn't reasonable | 09:08 |
|
| but if I can identify the patch mail efficiently, I'd use git am from command line, if it's possible. | 09:08 |
|
doener
| djszapi: hm? I don't understand that "the mail filesnames isn't reasonable" part | 09:09 |
|
| djszapi: I usually just tag the mail series in mutt, copy them to a new mbox, and apply that using git am | 09:09 |
|
| sitaram gets a feeling of deja vu -- someone else was explaining this yesterday, I dont recall to whom | 09:10 |
| ← hyperair left | 09:11 |
| → hyperair joined | 09:11 |
|
| doener wasn't responsible for either side, and wouldn't remember anyway | 09:11 |
| ← hyperair left | 09:12 |
|
djszapi
| doener: why do you copy then ? | 09:12 |
|
| If you're in mutt you can presh '|' | 09:12 |
|
| and then git am -s | 09:12 |
|
| I'd like to be totally independent from any mail client. | 09:13 |
|
| just getmail. | 09:13 |
|
| and then I'd like to choose easily the mail, patch inside it | 09:13 |
|
doener
| djszapi: because I mostly use "git am -3", and if that leads to conflicts, I have to leave mutt anyway | 09:13 |
|
djszapi
| otherwise if i open a mail client, i can use inside that actions, like in mutt '|' | 09:13 |
|
doener
| djszapi: repeat the "switch to mutt; apply; conflicts; switch to vim; fix; commit" cycle for ten mails and it's a major pain | 09:14 |
|
djszapi
| you can use after '|' in mutt git am -s -3 too | 09:14 |
|
doener
| djszapi: any my mutt instance is usually running with $PWD being $HOME, so I'd have to chdir around, too | 09:14 |
|
djszapi
| yeah. | 09:14 |
| → lhz joined | 09:15 |
|
djszapi
| you use 'cd' command before opening mutt. | 09:15 |
|
| not ? | 09:17 |
| → pantsman joined | 09:18 |
|
cjs_
| For some reason, when I specify --trunk, --branches and --tags to git svn, it fails with "Bad URL passed to RA layer: Unrecognized URL scheme for 'trader' at /usr/lib/git-core/git-svn line 745". Has anybody seen this sort of thing before? | 09:19 |
| → hyperair joined | 09:19 |
|
cjs_
| (I've checked to make sure that the URLs are correct and exist in the repo.) | 09:19 |
| ← j416 left | 09:21 |
|
loops
| cjs_, is it an http:// URL ? | 09:22 |
|
cjs_
| No, it's a file:/// URL. | 09:22 |
|
| However, I did try it with an svn+ssh: URL, as well, and had the same issue. | 09:23 |
|
| (My URL structure is /client/project/trunk, /client/project/branch/foo, etc., BTW.) | 09:23 |
|
loops
| cjs_, don't think it has to do with the structure, others have reported this on the list, but i don't see a good answer :o( | 09:24 |
|
cjs_
| Oh dear. That kind of puts a crimp in my plans to convert from subversion.... | 09:24 |
| ← hyperair left | 09:25 |
| → hyperair joined | 09:25 |
|
loops
| cjs_, well i'm sure there is a way to resolve it, if mugwump doesn't come on and answer your question here, your best bet is asking on the mailing list | 09:25 |
|
doener
| cjs_: which git version? | 09:26 |
|
loops
| doener, good thought | 09:26 |
|
cjs_
| version 1.6.0.4 | 09:27 |
|
| BTW, is svn2git obsoleted by git-svn? | 09:27 |
|
doener
| cjs_: there were IIRC at least two fixes for such errors since then | 09:27 |
| → Octalot joined | 09:28 |
| → travisjeffery joined | 09:28 |
|
doener
| cjs_: though the "url scheme" part seems new to me, I'd still try a more recent git version | 09:28 |
| → d0k joined | 09:28 |
|
cjs_
| Hm. What's involved in trying out a newer version on an Ubuntu system? | 09:28 |
|
loops
| cjs_, no, they're separate projects | 09:28 |
|
doener
| cjs_: svn2git warps git-svn | 09:28 |
|
| s/warps/wraps/ | 09:29 |
|
cjs_
| It's more than just grabbing a single binary, isn't it? | 09:29 |
|
doener
| cjs_: there should be backports available | 09:29 |
| ← jfxberns left | 09:31 |
| → rudi_s joined | 09:32 |
| ← davido left | 09:34 |
|
cjs_
| Ah, found one. Thanks. | 09:35 |
| → jfkw joined | 09:35 |
|
cjs_
| This is 1.6.5.1. | 09:35 |
|
doener
| which is the most recent release | 09:36 |
|
cjs_
| Same issue, though. | 09:38 |
| → Axius joined | 09:38 |
|
cjs_
| Are there any workarounds? I've got only about four branches I need to import, really, at least in this one project. | 09:38 |
|
doener
| cjs_: could you pastebin the output you got? | 09:38 |
|
loops
| cjs_, what version of svn ? | 09:39 |
|
| cjs_, can't say i know it matters, but am curious | 09:40 |
|
cjs_
| svn 1.5.4, and the only output was "Bad URL passed to RA layer: Unrecognized URL scheme for 'trader' at /usr/lib/git-core/git-svn line 940" | 09:40 |
|
loops
| cjs_, what command line did you use ? | 09:40 |
|
cjs_
| Ok, I've possibly found the issue. I was using --trunk=xxx --branch=xxx --tags=xxx projname, where the xxx was the full URL. If I give just "trunk" "branch" and "tag" as the xxx arguments (i.e., relative), and give the full URL (without /trunk appended) before the projname (the output dir name), it runs, though I've not verified that it actually does the right thing. | 09:45 |
|
doener
| yeah, the --branches etc. options expect paths relative to $url | 09:45 |
|
cjs_
| Ah, well, the docs claim you can use full URLs. | 09:46 |
|
| And you can, if you use just --trunk. | 09:46 |
| ← kpreid_ left | 09:47 |
| → kpreid__ joined | 09:47 |
| ← Axius left | 09:47 |
|
doener
| cjs_: ah, you were using it without the full url as argument | 09:47 |
|
| cjs_: never tried that, didn't expect that to work either | 09:48 |
|
cjs_
| Any thoughts on how I might check to see if it's doing the right thing before it's done? It's a rather large repo.... | 09:51 |
|
Mikachu
| you can run gitk in another terminal at any point during the import | 09:51 |
| → Tuomas joined | 09:52 |
|
cjs_
| Ah. Actually, git branch -l should show me the branches it's bringing in, shouldn't it? But we're a ways in, and no branches, just the trunk so far. It probably does them after the trunk, though. | 09:52 |
|
Mikachu
| yeah | 09:52 |
| → mikem` joined | 09:53 |
|
cjs_
| It would rather want to, when you think about it. Hm. Well, perhaps I'll go grab some dinner and see where we are when I come back. | 09:53 |
|
Mikachu
| well, -a, not -l | 09:53 |
|
| -l means create reflog :) | 09:53 |
|
cjs_
| Oops, yeah, git tag -l. | 09:54 |
| → abms1116 joined | 09:54 |
|
mikem`
| hi, in the git-svn manpage, the blurb about the --prefix option says, near the end: "Setting a prefix is useful if you wish to track multiple projects that share a common repository." -- could someone elaborate on this? How does this work? I'd like to track multiple projects that are living in the same repo, each in its own dir which contains its set of trunk/, branches/ and tags/ dirs. | 09:54 |
|
cjs_
| So I'm not clear on what svn2git does that git svn doesn't. | 09:54 |
|
Mikachu
| they are just different programs | 09:54 |
|
doener
| cjs_: It tries to add things like "convert svn tags to git tags", by being a wrapper around git-svn | 09:55 |
|
cjs_
| mikem`: You arrived at a very appropos time for that question. :-) | 09:55 |
| → mbuf joined | 09:56 |
|
mikem`
| haha so it seems | 09:56 |
|
doener
| cjs_: but it doesn't do that in exactly the smartest/fastest/most correct way | 09:56 |
|
cjs_
| By adding the --tags argument to the git-svn command line? | 09:56 |
|
mbuf
| when there is a conflict during a merge, I manually fix the changes, and then I should just add the modified file, and commit? | 09:56 |
|
doener
| cjs_: no. That option make git-svn create remote tracking branches for the svn tag | 09:56 |
|
| s | 09:56 |
|
| cjs_: as tags in svn are just branches, except for convention | 09:56 |
|
| cjs_: so to play safe, git-svn treats them like branches | 09:57 |
|
Mikachu
| mbuf: yes | 09:57 |
|
cjs_
| Ah, I see. So I'll actually get out branches, not tags, for svn "tags" pulled in via --tags. | 09:57 |
|
doener
| cjs_: btw, we're talking about this svn2git, right? http://github.com/jcoglan/svn2git | 09:57 |
|
mbuf
| Mikachu, thanks! | 09:57 |
|
cjs_
| doener: yeah, that's the one I was looking at. | 09:57 |
|
| I'm not sure that the other web pages I looked at were talking about that one. | 09:58 |
|
doener
| cjs_: ok. That has e.g. fix_tags here: http://github.com/jcoglan/svn2git/blob/master/lib/svn2git/migration.rb | 09:58 |
|
cjs_
| mikem`: So what exactly are you trying to do? | 09:58 |
|
doener
| cjs_: that converts the tag-related remote tracking branches into real git tag | 09:58 |
|
| s | 09:58 |
| → BurmaSauce joined | 09:58 |
|
doener
| cjs_: but 99,99% of the time, that straight conversion is _not_ what you want | 09:59 |
|
| cjs_: and it wastes a lot of time by doing "git checkout $foo" and then tagging what HEAD resolves to, instead of directly tagging $foo | 09:59 |
|
mikem`
| I have an SVN repo, with a layout like this: svn://server/projA/{trunk,branches,tags}, svn://server/projB/{trunk,branches,tags} etc. I'm not sure how to track it with git. the git-svn manpage says something about --prefix and multiple projects in the same repo, but I'm not quite clear on how exactly it works | 10:00 |
| → erikvold joined | 10:01 |
|
doener
| cjs_: http://git.pastebin.com/m6d587724 | 10:02 |
|
mikem`
| ah, I think i get it. I'd need to do a separate `git svn clone --prefix projA/` for each project in the repo. I'd end up with as many git repos as there are projects in the SVN repo | 10:02 |
|
doener
| cjs_: you want the tag to reference the original commit C, not the bogus commit T that svn had to create | 10:02 |
| → Axius joined | 10:03 |
|
doener
| cjs_: And if someone was smart enough to change the tag in svn, by committing to it, you likely want some more surgery to get a meaningful history that doesn't have the tag living somewhere outside the "real" branch | 10:04 |
|
cjs_
| Hm. I'm not sure I see how much difference that makes, though if you trust the svn repo to use the convention correctly, you might want to drop the "tag branch" entirely. | 10:04 |
|
| Fortunately I don't use tags much. | 10:05 |
| ← travisjeffery left | 10:05 |
| → therrg joined | 10:05 |
|
doener
| cjs_: yeah, the tags/1.0.0 remote tracking branch can be dropped later | 10:05 |
|
| cjs_: and having the tag referencing C instead of T makes a big difference if you use e.g. "git describe" | 10:06 |
|
| cjs_: "git describe E" could tell you that E is a descendant of 1.0.0, being two commits ahead of it. But only if the 1.0.0 tag references C | 10:06 |
| ← _Mica1 left | 10:06 |
|
doener
| cjs_: if it references T, it's outside of E's history, and thus not available to "git describe" | 10:07 |
| ← hyperair left | 10:07 |
|
cjs_
| Ah! | 10:07 |
| ← BurmaSauce left | 10:08 |
| → hyperair joined | 10:10 |
| ← vital left | 10:10 |
| → vital joined | 10:11 |
| ← erikvold left | 10:11 |
| → jfxberns joined | 10:15 |
| → vvsh joined | 10:23 |
| → patrikf joined | 10:24 |
| ← Axius left | 10:24 |
| ← therrg left | 10:25 |
| → therrg joined | 10:26 |
| → davido joined | 10:28 |
| → akitada joined | 10:28 |
| ← abms1116 left | 10:29 |
| → stamina joined | 10:31 |
| → Yuuhi joined | 10:32 |
| ← GodEater left | 10:33 |
| → GodEater joined | 10:33 |
| → __iron joined | 10:34 |
|
akitada
| Can git-svn handle more than one repository at the same time? One for getting changes and another for saving the changes? | 10:34 |
|
| Getting changes in svn repo is easy. The hard part of this plan would be exporting the changes from the git repository and saving it to svn. | 10:38 |
| ← kpreid__ left | 10:40 |
| → kpreid_ joined | 10:40 |
|
pantsman
| I'd use 2 git repos, one cloned from each SVN repo | 10:42 |
|
| and pull from one repo to the other before dcommit | 10:42 |
|
Ilari
| That doesn't work very well... | 10:42 |
|
| Maybe format-patch and am to move them as patches might work... | 10:43 |
| → Grahack joined | 10:43 |
|
akitada
| Ilari: yes, manual patch work seemed to be the only way to accomplish this... | 10:44 |
|
| Looking the changes occured in a repo, study easy commit and decide which patch is I wanted to include in my repository and possibly make some adjustments to the commit for my own repo and apply the modified cahnges into my own repo, etc etc... | 10:47 |
|
| Ilari: this is what you suggested for me, correct? | 10:47 |
|
| and I'd also need another manual patching work for exporting changes in git repo into svn. | 10:49 |
|
Ilari
| akitada: Well, format-patch and am are for mass patch extraction and mass patching. | 10:52 |
| → trochala joined | 10:52 |
|
Mikachu
| you can't use rewriteRoot for that? | 10:53 |
|
akitada
| Ilari: Let me check the format-patch manual. | 10:55 |
| → Blackshark joined | 10:56 |
|
akitada
| and git-am | 10:57 |
|
charon
| akitada: if you import the source svn with --no-metadata, you can just rebase the commits onto the destination svn | 10:58 |
|
| the --no-metadata is important because the (wrong) git-svn-id lines would confuse git-svn as to what should go where | 10:58 |
|
| (or use gfp|am, like Ilari says; a noninteractive rebase is just that) | 10:59 |
| → j416 joined | 11:01 |
| stsch → Tank` | 11:03 |
| ← Arild left | 11:03 |
| ← ph^ left | 11:04 |
|
akitada
| Ilari: well, it helped much. must admit I was missing big help in git here. | 11:05 |
|
| charon: gfp? | 11:07 |
|
charon
| format-patch | 11:07 |
|
akitada
| Ah *G*it-*F*ormat-*p*atch. ok | 11:08 |
| ← bsdvodsky left | 11:10 |
|
akitada
| charon: as for noMetadata, I suppose it won't work for me, because it's not one shot import but it's continuous. | 11:11 |
|
charon
| akitada: that doesn't matter as long as you only git svn fetch (not git svn rebase) and take care to not drop the "cache" | 11:12 |
| → jaggz joined | 11:12 |
|
jaggz
| hi | 11:12 |
|
charon
| (in this case it's strictly speaking not a cache as it's not expendable) | 11:12 |
|
jaggz
| do any git users live in Los Angeles and want me to treat them to a coffee or dinner and show me the ins and outs of git usage? | 11:13 |
|
| I'm an svn user and I am sad. | 11:13 |
| ← aliceinwire_ left | 11:13 |
| ← priidu left | 11:16 |
| → corni joined | 11:17 |
| → Pupeno joined | 11:17 |
|
akitada
| charon: That workflow is something like: git svn fetch; git merge refs/remotes/trunk; git svn dcommit (to destination repo) ? | 11:17 |
|
Pupeno
| Is there a way to get the number of commits so far? | 11:17 |
| ← thijso left | 11:17 |
| → _jason553839 joined | 11:17 |
|
j416
| Pupeno: I always do something like: git log --oneline | wc -l | 11:18 |
|
charon
| akitada: well, from your description i assumed you wanted to copy over the *exact commits*, which a merge can't do | 11:18 |
|
j416
| for the current branch | 11:18 |
|
| but there may be a better way. | 11:18 |
| → thijso joined | 11:18 |
| ← vvsh left | 11:18 |
|
Pupeno
| j416: --oneline! exactly what I wanted. Thanks. | 11:18 |
| → khmarbaise joined | 11:18 |
|
j416
| :) | 11:18 |
|
cjs_
| Grr...git svn it didn't load the freaking branches. | 11:18 |
|
charon
| akitada: you can use a merge but it will look like a big commit bringing over all changes in the destination svn | 11:18 |
|
\\steve
| a git svn rebase really takes ages on a windows machine | 11:21 |
| mbuf → mbuf|away | 11:21 |
| → jwheare joined | 11:22 |
| ← kpreid_ left | 11:24 |
| → kpreid_ joined | 11:24 |
|
jwheare
| i'd like to use git-filter-history to start a new repository based on a single file in another repo | 11:24 |
|
| in the past i've used subdirectory-filter, but in this case there's other files in the subdirectory i'm not interested in. | 11:25 |
|
| what's the best way to do this? | 11:25 |
|
cjs_
| Oh, it did get them; I just needed to use "git branch -a" to see them. | 11:25 |
| → neldoreth joined | 11:26 |
|
j416
| jwheare: you want to keep the history of that single file? | 11:26 |
|
jwheare
| j416: yup | 11:26 |
|
j416
| ok | 11:26 |
|
| by git-filter-history I presume you mean git-filter-branch | 11:27 |
|
akitada
| charon: so what does that workflow look like? | 11:27 |
|
jwheare
| (i meant git-filter-branch) :) | 11:27 |
|
j416
| and | 11:27 |
|
| it's not hard at all | 11:27 |
|
| if you know bash script | 11:27 |
|
cjs_
| Ah, but they're just remote branches? What do I need to do (that svn2git does) to get local copies of these branches into my repo? | 11:28 |
|
doener
| cjs_: to create a branch head, just the usual "git branch <name> <starting-point>" | 11:28 |
|
j416
| jwheare: I have never done that exact same thing, but if it were me I would probably use git filter-branch --tree-filter '<cmd>' | 11:28 |
|
doener
| cjs_: they're remote tracking branches. All the required objects are already local. | 11:29 |
|
j416
| where <cmd> is a bash script that removes everything but that file | 11:29 |
|
| there may be simpler ways to do it. | 11:29 |
|
neldoreth
| hello, i have a little question: i want to push something from my branch in my remote git and get now the following error: "To prevent you from losing history, non-fast-forward updates were rejected, Merge the remote changes before pushing again. See the 'non-fast forward'" so i do a git pull, but everything is up to date (same when i say git merge origin/my_branch) - can someone give me a hint? | 11:29 |
|
cjs_
| doener: Ah, really? | 11:29 |
|
j416
| also, make the script always return 0. | 11:30 |
| mbuf|away → mbuf | 11:30 |
|
cjs_
| So if the remote branch is named remote/foo, I can just "git branch foo remote/foo"? | 11:30 |
|
Ilari
| neldoreth: Check what branch was rejected and then check what branch you are on. pull merges into current branch. | 11:30 |
|
cjs_
| I'm not quite clear on what a "remote tracking branch" is. | 11:30 |
|
j416
| possibly --index-filter is faster, I have never used it. | 11:30 |
|
Ilari
| cjs_: Mirror of branch from another repository. | 11:30 |
|
doener
| cjs_: git has at least three basic namespaces for refs | 11:31 |
|
| cjs_: refs/heads/* for branch heads, refs/tags/* for tags, and refs/remotes/* for remote tracking branches | 11:31 |
|
| cjs_: remote tracking branches are (as Ilari said) mirrors of the branch heads of a remote repository, they track a branch in the remote repo, hence the name | 11:32 |
|
charon
| akitada: git svn fetch -Rsource; git checkout -b tmp source/trunk; git rebase --onto destination/trunk previously_ported_over; git svn dcommit -Rdestination; git branch -f previously_ported_over source/trunk | 11:32 |
|
| oh, and delete the 'tmp' branch afterwards ;) | 11:32 |
|
doener
| cjs_: what "git branch [-r|-a]" shows, are just the shortnames for the [remote tracking] branches | 11:33 |
|
neldoreth
| Ilari: ah, right - thanks! | 11:33 |
| ← brizly left | 11:33 |
|
doener
| cjs_: so if "git branch" shows a branch head "master", its full name is refs/heads/master | 11:33 |
|
Ilari
| neldoreth: Hint: Its possible to make command prompt display name of current branch. | 11:33 |
| ← kpreid_ left | 11:33 |
|
charon
| akitada: untested though. the idea is, you use a rebase to "copy over" all new commits from 'source' over to be based on 'destination/trunk' so that you can dcommit there | 11:33 |
| → kpreid_ joined | 11:33 |
|
cjs_
| Ah, so when I pull from the other repo, those branches will be updated as well? | 11:33 |
|
Ilari
| neldoreth: (install git command completion and configure command prompt). | 11:33 |
|
neldoreth
| Ilari: it does, i am using the zsh with a specific config, but i totally missed that | 11:34 |
|
doener
| cjs_: when you fetch. "pull" is a convenience command that wraps fetch and merge/rebase | 11:34 |
|
charon
| akitada: and as i said, it's *really* important that those commits do not have any git-svn-id lines, so you must configure 'source' with --no-metadata | 11:34 |
|
doener
| cjs_: by default, names of remote tracking branches have the form refs/remotes/<remote>/<branch_head> | 11:34 |
| → brizly joined | 11:35 |
| → aresnick joined | 11:35 |
|
doener
| cjs_: e.g. the "master" branch head of the remote "origin" is tracked as refs/remotes/origin/master | 11:35 |
|
| cjs_: unfortunately, the default for git-svn is to not have that <remote> infix | 11:35 |
|
| cjs_: that a) pollutes the namespace and b) can easily make things ambiguous, as git allows those short names to be used | 11:36 |
|
cjs_
| Ah, ok. So basically, I can branch from a remote branch, hack away, and my changes will go back to that branch when I push them back. | 11:36 |
|
doener
| cjs_: from a remote tracking branch (or just "tracking branch", but that name usually leads to confusion, thanks to the --track option to git branch/checkout) | 11:37 |
|
| cjs_: a remote branch is the actual thing in the remote repo | 11:37 |
|
| cjs_: i.e. you fetch from a remote, getting mirrors of the remote branches locally as remote tracking branches | 11:38 |
|
akitada
| charon: cool but harder than I hoped. maybe I forgot to mention the src repo is not 100% same with project tracked on destination repo. it's a fork of src repo. so I think it's gfp & am with manual adjustments for my goal it seems. | 11:39 |
| ← _jason553839 left | 11:40 |
|
j416
| I'm reading in the mercurial document for git users, that if a tag is created with -a in git (to make it an object), it will be global instead of local | 11:40 |
|
| I find nothing about this in man git-tag | 11:40 |
|
Gitbot
| j416: the git-tag manpage can be found at http://git.or.cz/man/git-tag | 11:40 |
| → psoo joined | 11:40 |
|
doener
| j416: because that's, uhm, inaccurate... | 11:40 |
|
cjs_
| So if I'm going to use this as my new master repo, and I want clones of it to be able to access those branches, what do I need to do? | 11:40 |
|
j416
| doener: thank you for confirming. :) | 11:40 |
|
| so I though | 11:40 |
|
| thought* | 11:40 |
|
charon
| akitada: sure, there are several ways to do the rebase :) e.g., you can also use an interactive rebase to rearrange stuff, or use a merge strategy if required | 11:40 |
|
doener
| j416: "git tag -a" creates an annotated tag, i.e. a tag object, with message, tagger, date etc. | 11:41 |
|
j416
| tags will always be local until you specifically choose to pull or push them, right? | 11:41 |
|
| yes | 11:41 |
|
Mikachu
| fetch will fetch tags that are in the updated range | 11:41 |
|
j416
| and just "git tag" is more similar to a symbolic ref, right? | 11:41 |
|
doener
| j416: while just "git tag" creates just a ref that directly references a commit, no tag object created, thus no message etc. | 11:41 |
|
jwheare
| j416: thanks for the advice | 11:41 |
| → bentob0x joined | 11:41 |
|
doener
| j416: no! A symbolic ref references another ref. That would likely be a moving target | 11:42 |
|
j416
| jwheare: be careful with merges if you have those, I have never run filter-branch with merges. Maybe it works fine, I don't know :) | 11:42 |
|
| oh | 11:42 |
|
| thanks :) | 11:42 |
|
| ok so, a head then | 11:42 |
|
Ilari
| Filter-branch works fine with merges since it does filtering commit by commit. | 11:42 |
|
j416
| Ilari: ok :) | 11:42 |
|
| neat | 11:42 |
|
doener
| j416: a ref. By "head" one usually means a branch head, i.e. a ref in the refs/heads/ namespace | 11:42 |
|
j416
| ok! | 11:43 |
|
charon
| akitada: but in general, toying with svn histories is easy if you always remember the basic rule: the "target" SVN is always the one referenced in the first git-svn-id reachable through first-parent history | 11:43 |
|
j416
| but technically they're the same thing, right? | 11:43 |
|
| (apart from the name and storage location) | 11:43 |
|
doener
| j416: "git tag" always creates a ref in the refs/tags/ namespace. Without -a, the ref will directly reference the object that is to be tagged | 11:43 |
|
j416
| yep, my thought. Thanks | 11:43 |
|
doener
| j416: with "-a", a tag object is created, that has some extra data and references the to be tagged object. And the ref will reference that tag object, instead of the object to be tagged | 11:44 |
|
j416
| yeah | 11:44 |
|
doener
| you can transport either into different repos using fetch/push. But _usually_ the light-weight tags are used locally, and public tags (like for releases) are annotated | 11:45 |
|
| but there's no technical reason that would stop you from pushing a lightweight tag | 11:45 |
| ← GodEater left | 11:45 |
|
akitada
| charon: it's impressive you know much about git-svn. | 11:46 |
|
charon
| akitada: well, not enough anyway, but i used it during an svn-to-svn transition to keep the two repos in sync for a few months :) | 11:46 |
|
akitada
| charon: for my case, it's not a sync, but more like fork. src repo is not what I manage and I don't have the commit right. git repo and destination svn are what I manage and can commit anything I want. | 11:48 |
| ← davido left | 11:49 |
| → davido joined | 11:49 |
| ← psoo left | 11:49 |
|
doener
| cjs_: http://git.pastebin.com/m5451bb1c | 11:50 |
|
akitada
| charon: so git and dst svn include some changes in src svn (not all) and my haking work. I even delete some of the files in my repos so simply importing changes in src svn should fail. | 11:50 |
| → babilen joined | 11:50 |
|
doener
| cjs_: so you need to create local branch heads for everything that people cloning your repo should have (unless you want them to resort to manually adjust the configured refspec ;-)) | 11:51 |
|
pielgrzym
| hi there :) when I push into a non-bare repository the changes remain uncommited - how to change this? | 11:52 |
|
bremner
| pielgrzym: faq non-bare | 11:53 |
|
Gitbot
| pielgrzym: Pushing to non-bare repositories is discouraged. See http://git.or.cz/gitwiki/GitFaq#non-bare | 11:53 |
|
akitada
| charon: so it'd be a little harder than your case, unfortunately. | 11:53 |
|
pielgrzym
| bremner: just realized it would be cooler to have a crossrepo between production eviorment and testing enviorment - not to push direclty into production server :) | 11:54 |
| → corni_ joined | 11:55 |
|
bremner
| yes. and that crossrepo should be bare | 11:56 |
|
pielgrzym
| havin a bare repo - how can I set the default branch to other than master? | 11:56 |
|
thiago_home
| write to HEAD | 11:56 |
| → psoo joined | 11:56 |
|
pielgrzym
| thiago_home: thanks! | 11:57 |
| ← doener left | 11:58 |
| → doener joined | 11:58 |
|
bremner
| I think git-symbolic-ref can do it too, if you don't like vi | 11:59 |
|
cjs_
| doener: Ah, so I was right to create those local branch heads. And should I decide to pull further changes on those from the svn repo, I'll need to rebase my local branches, as well as my master, right? | 12:02 |
|
doener
| cjs_: yeah. But that rewrites history, and quickly becomes a pain if you share that repo via git | 12:03 |
| ← corni left | 12:03 |
|
doener
| here's a short setup guide for a svn one-way mirror: http://git.or.cz/gitwiki/GitFaq#HowdoImirroraSVNrepositorytogit.3F | 12:04 |
| → aspotashev joined | 12:04 |
|
cjs_
| Oh, if I were going to pull further stuff, I'd make it two-way, and dcommit any changes coming in from the git side. | 12:04 |
|
doener
| cjs_: that's hairy, thus the setup is one-way, you should put any "not yet in svn" stuff in there | 12:05 |
|
| cjs_: using git-svn makes you prone to a whole set of svn shortcomings if you dcommit | 12:05 |
| → malumalu joined | 12:07 |
|
cjs_
| Hm. I'm confused now. Is using a clone of an svn clone going to be more of an issue than just using an svn clone repo? | 12:08 |
|
charon
| akitada: yeah. i just used merges as i only had to work around a rename, and sufficiently high rename limits worked well | 12:08 |
| → BurmaSauce_ joined | 12:08 |
|
doener
| cjs_: yes, if there are any "not in svn" things in the intermediate repo | 12:09 |
|
| cjs_: with such commits, you have to rebase, which rewrites history, and forces the downstream repo to deal with that and rewrite its history as well | 12:09 |
|
cjs_
| Ah, but I'll be ok if I'm not making changes in the svn repo, right? | 12:11 |
|
doener
| cjs_: if you don't fetch from the svn repo anymore, it's basically out of the equation, so you're git-only | 12:11 |
|
cjs_
| I think I see what you mean now, and I can probably handle that issue. I'm not looking for true interoperation; I'm looking to be able to switch back to svn should a client decide he just can't stand git. | 12:11 |
|
doener
| cjs_: well, and don't dcommit either | 12:11 |
|
| cjs_: basically, as long as you interact with the svn repo, you have a central repo there, even with git-svn. | 12:12 |
|
| cjs_: What git-svn offers are primarily local commits then. | 12:12 |
|
| cjs_: some "advanced" workflows (that still have quite some flaws), may allow you to do a bit more, but often, it's not worth it | 12:12 |
|
| cjs_: note that I'm not trying to say that you may not dcommit at all, you should just not share anything that's not in the svn repo, unless you know what you're doing | 12:13 |
| ← j416 left | 12:14 |
| ← BurmaSauce_ left | 12:14 |
|
doener
| cjs_: if you have that central svn mirror, others can do their initial clone from there, and from then on use "svn fetch/rebase/dcommit", ignoring the mirror | 12:14 |
|
| cjs_: that way, you share things through the svn repo | 12:14 |
|
| cjs_: and that works. But sharing things via "git fetch/push" is kinda dangerous | 12:15 |
| → _jason553839 joined | 12:15 |
|
cjs_
| Hm. That's a thought, but I'm actually trying to get rid of svn here. The only real question is, can I work in git for a few weeks, and bring everything back into svn if it doesn't work out for a project. | 12:15 |
|
doener
| cjs_: as long as you keep your history linear (no merging), that should work | 12:16 |
|
akitada
| charon: to be honest I still don't get it well on how I could workaround the situation where i'm currently on but I now know I need to be more familiar with git-format-patch, git-am and git-svn. that's better than not knowing where to start :p | 12:16 |
|
doener
| cjs_: honestly, git-svn is a very nice bandaid if you're forced to work with a svn repo | 12:16 |
|
| cjs_: but if you want to look into real git usage, you're probably better off with something where all the (git-)svn restrictions don't affect you | 12:16 |
| ← therrg left | 12:17 |
|
cjs_
| doener: So, basically, get everybody rebasing from a central git repo before they push to it? | 12:17 |
| → Sonderblade joined | 12:18 |
|
doener
| cjs_: if you won't dcommit (or only after you declared the git attempt as a failure), then yes, that would likely work. | 12:18 |
|
djszapi
| How can I view about it a commit in which branch is it ? | 12:19 |
|
doener
| cjs_: i.e. you create a linear history with git and don't interact with the svn repo, at all, for the time being. Then you should be able to dcommit back to svn later (if you decide to drop the git repos, they'll need a fixup otherwise) | 12:20 |
|
thiago_home
| djszapi: can you rephrase? | 12:20 |
|
djszapi
| yep | 12:20 |
|
| git show e77336d9a60dc9e0363569cdc3c9630aa24bd6e5 | 12:20 |
|
Gitbot
| [git e77336d9a]: http://tinyurl.com/ylqdfpj -- send-email: confirm on empty mail subjects | 12:20 |
|
| doener guesses "git branch --contains <committish>" | 12:20 |
|
djszapi
| e.g. I would like to get information about this commit, in which branch is it | 12:20 |
|
| e.g. | 12:20 |
|
thiago_home
| that's what I'm guessing to | 12:20 |
|
cjs_
| doener: Right, that's easy enough to do, since it fits in with the svn working style we've been doing all along. | 12:20 |
|
thiago_home
| yeah, git branch --contains | 12:20 |
|
djszapi
| the output is empty prompt | 12:21 |
|
| without any informations. | 12:21 |
|
thiago_home
| then it's in none of your local branches | 12:21 |
|
djszapi
| Do i need to clone first of all the branch ? | 12:21 |
|
thiago_home
| try git branch -a --contains | 12:21 |
|
djszapi
| remotes/origin/{next,pu} | 12:22 |
|
doener
| cjs_: it's a quite limited workflow for git though ;-) | 12:22 |
|
djszapi
| How can I get describtion about a branch, why is it established and what does it's name cover ? | 12:22 |
| ← g0bl1n left | 12:22 |
|
thiago_home
| djszapi: post to the mailing list | 12:23 |
|
djszapi
| it's a faq I think. | 12:24 |
| → BurmaSauce_ joined | 12:24 |
|
djszapi
| It's needed to be desribed somewhere. | 12:24 |
| ← BurmaSauce_ left | 12:24 |
|
| doener didn't understand the question, especially the second part | 12:25 |
|
djszapi
| doener: what does it mean e.g. next/pu branch ? | 12:25 |
|
| and why was it established/created ? | 12:25 |
|
cjs_
| doener: Limited workflow for a little while is not a problem. It still gives us everything we get from svn, and once everybody's comfortable, we can declare we're not using svn any more, and move on to using other useful git features. | 12:25 |
| → tbuehlmann joined | 12:26 |
| ← mikem` left | 12:27 |
|
doener
| cjs_: it's just more painful to rebase all the time. And it probably also leads to keeping the svn "I need to update 50 times a day" syndrome | 12:27 |
|
| cjs_: anyway, good luck :-) Have to go | 12:27 |
|
| djszapi: there's no "describe a ref" mechanism in git. Such things are usually in READMEs or something like that | 12:28 |
|
| djszapi: for git, google "A note from the maintainer" | 12:28 |
| → gitte joined | 12:28 |
|
cjs_
| doener: We very much like the "update 50 times a day" thing; it keeps us honest, and keeps merge costs down. | 12:29 |
|
| Basically, in an agile world, you want everybody working on something that's as close to production, or what's about to be rolled out to production, as possible. | 12:30 |
| → jstephenson joined | 12:30 |
| → ciskje joined | 12:31 |
| ← davido left | 12:31 |
| ← jstephenson left | 12:31 |
|
doener
| dunno, I rather focus on getting my 5-10 commits done to finish a thing, and then merge it once. Instead of getting interrupted over and over again | 12:32 |
| → jstephenson joined | 12:32 |
|
djszapi
| doener, thiago_home: thanks | 12:32 |
|
bremner
| cjs_: one thing to keep in mind is that merging works better in git than in svn | 12:37 |
|
| or so they tell me. I never really used branches in svn | 12:37 |
|
cjs_
| bremner: Sure, but even so, working against code that no longer exists is a waste of time. | 12:37 |
|
bremner
| cjs_: I'm not here to manage your project for you :) | 12:38 |
|
cjs_
| I understand that. :-) | 12:39 |
| ← _jason553839 left | 12:40 |
|
cjs_
| Basically, there are certain parts of git that are designed for what I would call "slow-moving" projects, with groups that don't talk to each other a lot (i.e., constantly because they're usually all working together in the same room) and don't realize very often (i.e., not several production releases per day at times). | 12:40 |
|
| So I just don't worry too much about the features that solve problems I don't have. | 12:40 |
|
bremner
| s/git/version control/ | 12:40 |
|
cjs_
| Hm? Well, I was talking about some of the stuff that git makes easy that's harder in svn. Such as doing large merges. | 12:42 |
|
bremner
| hey, whatever works. Just be aware there are many possibilities with git that were not really there with svn. In particular, I notice really thinking about the commit history as output rather than one piece of code. I think this has important maintenence consequences | 12:42 |
|
cjs_
| Can you elaborate on that? | 12:43 |
|
Ilari
| Get large enough merges (and not just large enough in file count) and the cost of resolving conflicts dwarfs the initial command cost. I have seen merge that took 5 days to resolve. | 12:43 |
|
bremner
| well, by working on a sequence of commits locally for a bit, I am more able to make them into logical chunks, to support e.g. debugging by bisecting | 12:44 |
|
cjs_
| llari: exactly. | 12:44 |
| → brain0 joined | 12:44 |
|
cjs_
| bremner: Ah, yes, I've noticed that a bit. | 12:44 |
|
Ilari
| But often such merges are sign of bad workflow / application organization. Most merges should be easy to resolve. | 12:46 |
| → jaggz- joined | 12:46 |
| → _Mica_ joined | 12:46 |
|
cjs_
| llari: Well, I dunno; I frequently do architecture changes that touch many parts of the system. If you think of having to do those as the result of bad application organization, well, yes, that's exactly why the changes were made. :-) | 12:47 |
| → rudi_s_ joined | 12:48 |
| ← ixti left | 12:48 |
| → w0rmie joined | 12:48 |
| ← w0rmie left | 12:48 |
| → w0rmie joined | 12:49 |
|
selckin
| what kind of merge takes 5 days? | 12:51 |
|
cjs_
| BTW, anybody here use gitosis? Can one have repos in subdirectories of the repositories directory? | 12:51 |
|
selckin
| 2 teams not talking to each other for a month and rewriting the entire thing? | 12:51 |
|
sitaram
| cjs_: I believe so; never tried it though | 12:51 |
|
Ilari
| Ah yeah. Agile tends to use "we can refactor this later" over "design up front". Of course, Waterfall is straw man model. | 12:51 |
|
selckin
| but doesn't that aslo imply you merge alot and thus keep the sizes down? | 12:52 |
| → corni__ joined | 12:52 |
|
cjs_
| llari: Agile does as much design up front as it can. And those who do a lot more design up front usually tend to get it wrong anyway. You're far safer being able to change your design than to hope you get it right the first time, no matter how much time you spend on it the first time. | 12:53 |
|
| And besides, those big changes are cheap, so who cares? | 12:53 |
| → tazle_ joined | 12:53 |
|
Ilari
| selckin: 3 months of changes on one side (history in Git). 2 years of changes on other side (no known version control)... That can't end wel... | 12:53 |
|
| And its pretty telling that there was 3 months of changes on one side and ~2years on the other... | 12:54 |
| ← rudi_s left | 12:55 |
|
Ilari
| cjs_: I would rather get the design quickly almost right. Big changes to programs aren't cheap... | 12:56 |
| → psoo_ joined | 12:57 |
| ← w0rmie left | 12:58 |
| ← Grahack left | 12:59 |
|
cjs_
| llari: So would anyone. Agile doesn't mean "don't design." It just means, once you've gotten as far as you can with the design, based on how much you know right now, start implementing rather than just going around in circles. | 13:01 |
| → aigon joined | 13:03 |
| ← JasonWoof left | 13:04 |
| mbuf → mbuf|away | 13:05 |
| → Bass10 joined | 13:06 |
| → bremner_ joined | 13:06 |
| → Akufen joined | 13:06 |
| ← Phurl left | 13:08 |
| → Phurl joined | 13:08 |
| ← corni_ left | 13:08 |
| ← babilen left | 13:09 |
| ← hummingkid left | 13:10 |
| ← psoo left | 13:12 |
| → yaotti joined | 13:12 |
| ← Akufen left | 13:15 |
| ← _Mica_ left | 13:18 |
| → MisterN joined | 13:19 |
| → onigiri joined | 13:20 |
| ← trochala left | 13:20 |
|
neunon
| Is there a way to make git always ignore changes for a specific file (and not commit them with git commit -a), unless the changes are added to the index via 'git add -f'? | 13:20 |
|
selckin
| gitignore works like that i think | 13:21 |
|
Ilari
| Except that gitignore is ignored for tracked files. | 13:22 |
|
neunon
| exactly. | 13:22 |
| → jtdowney joined | 13:22 |
|
djszapi
| How do I rewrite the author of commit too, git commit --amend can't handle it. | 13:22 |
|
Rhonda
| djszapi: It can, it has an --author option | 13:23 |
|
djszapi
| cool | 13:23 |
| ← aigon left | 13:25 |
|
djszapi
| and how can I rewrite a commit e.g. author, in the HEAD^^ commit ? | 13:25 |
| → alley_cat joined | 13:25 |
|
djszapi
| Can I do it only in the last one ? | 13:25 |
|
| git cherry .. ? | 13:25 |
|
gitte
| djszapi: rebase -i | 13:25 |
|
| djszapi: git cherry is unfortunately a pretty useless command, taking a nice and short name from more useful things. | 13:26 |
| ← brain0 left | 13:26 |
|
gitte
| djszapi: with rebase -i, you can rebase, reorder and modify the latest <n> commits. | 13:26 |
|
| djszapi: in your case, do "git rebase -i HEAD~2", which will show you the latest two commits in an editor. | 13:26 |
|
| djszapi: replace the first "pick" with an "edit". | 13:27 |
|
djszapi
| nope | 13:27 |
|
| http://pastie.org/659443 | 13:27 |
|
gitte
| djszapi: then write and exit, Git will stop after re-applying the 2nd latest commit. | 13:27 |
|
bremner_
| Ilari: Isnt there some gitattibutes trick to ignore changes to a tracked file? | 13:28 |
|
djszapi
| git reset ? | 13:28 |
|
| gitte: I can't understand | 13:28 |
|
| because i didn't get editor at all. | 13:28 |
|
gitte
| djszapi: you want to edit a commit when you still have uncommitted changes? That is not the safe way, so djszapi does not allow you to do it. | 13:28 |
|
| djszapi: you have local changes! | 13:28 |
|
Ilari
| There's assume-unchanged, but it has its own problems... | 13:28 |
| ← aresnick left | 13:28 |
|
djszapi
| I need to use git stash | 13:29 |
|
| until I edit the 2nd latest commit | 13:29 |
|
| that's the best way, right ? | 13:29 |
|
gitte
| djszapi: or you need to commit them first. That would be the best way. | 13:29 |
|
djszapi
| It's a not working tree | 13:29 |
|
| that I've got now, in this momment | 13:29 |
| → _Mica1 joined | 13:30 |
|
djszapi
| Is git stash safe and good in such a situation ? | 13:30 |
|
Rhonda
| Might be. | 13:31 |
| → ab3 joined | 13:33 |
| → schmukkk joined | 13:34 |
| ← relix left | 13:35 |
| ← jwheare left | 13:36 |
| → babilen joined | 13:37 |
| ← yaotti left | 13:38 |
| → Sho_ joined | 13:39 |
|
akitada
| charon: found your method is introduced in google code http://google-opensource.blogspot.com/2008/05/export-git-project-to-google-code.html | 13:42 |
| → parasti joined | 13:43 |
| → Xeross joined | 13:43 |
|
Xeross
| How can I undo an old commit (50 commits old or so) | 13:43 |
|
gitte
| akitada: it is unfortunate that Google Code blessed an inferior method and touted it as a "solution". But using git-svn to "export" Git repositories just loses too much information to be useful. | 13:45 |
|
| Xeross: git revert <commit> | 13:45 |
| → jrmuizel joined | 13:46 |
|
akitada
| gitte: could you show me superior method than git-svn? I'm looking for good export method now. | 13:47 |
|
gitte
| akitada: no, there is no good method. | 13:47 |
|
selckin
| use mercurial if you really want to use google code | 13:47 |
|
akitada
| selckin: I don't use google code, just need to export a git repo into svn. | 13:48 |
|
| gitte: even inferior method would be better than nothing :) | 13:50 |
| → BurmaSauce_ joined | 13:51 |
| ← BurmaSauce_ left | 13:52 |
|
| akitada wish svn will learn git-am someday. | 13:52 |
| → Tichodroma joined | 13:52 |
| ← bentob0x left | 13:52 |
|
Tichodroma
| How do I restrict git log to commits that are not in some specified branch? | 13:54 |
|
djszapi
| gitte: I did that pick -> edit and I rebased but the 1st last commit was lost. | 13:54 |
| → aspotashev_ joined | 13:54 |
|
djszapi
| how can I take back ? | 13:55 |
| → Akufen joined | 13:56 |
|
bremner_
| akitada: Do you have merges in your history? | 13:56 |
|
akitada
| bremner_: yes. | 13:56 |
|
bremner_
| Sucks to be you | 13:57 |
| ← jfxberns left | 13:57 |
| → corni_ joined | 13:59 |
|
akitada
| bremner_: because it can't be expressed in svn? | 13:59 |
|
bremner_
| Afaik correct | 14:00 |
|
Gitzilla
| gitte: Did the last pic show up OK? | 14:00 |
|
gitte
| djszapi: unfortunately, Git's user interface is not intuitive and relies on the user to read the output. So maybe you missed the fact that you have to finish the rebase by "git rebase --continue". | 14:00 |
|
| Gitzilla: perfect, yes. Thanks! | 14:00 |
| ← corni__ left | 14:00 |
|
akitada
| bremner_: I'll try to keep it flat | 14:01 |
|
djszapi
| gitte: Did i lost the last commit ? :( | 14:02 |
|
gitte
| djszapi: you tell me. | 14:02 |
|
| djszapi: you can find out by looking at "gitk <branch>". | 14:02 |
|
djszapi
| yep, but if I use git rebase --continue it couldn't happen ? | 14:02 |
|
gitte
| djszapi: if your rebase was not finished yet, that will show the old history, and "git branch" will show you that you are on "(no branch)", which is Git's way to say that it is on an unnamed branch. | 14:03 |
|
djszapi
| * (no branch) <- yep | 14:05 |
| → ivenkys_ joined | 14:07 |
| ← aspotashev left | 14:07 |
|
djszapi
| gitte: cool, thanks | 14:08 |
|
Tichodroma
| anyone? | 14:09 |
|
djszapi
| anyone | 14:09 |
| ← Xeross left | 14:09 |
|
gitte
| djszapi: it would be good if you raised awareness of Git's user-unfriendliness with the core developers, because I gave up. | 14:09 |
|
djszapi
| hm ? | 14:10 |
|
gitte
| djszapi: did you not have enough problems trying to use Git that you had to ask in this channel? If the user interface of Git was better (i.e. done by somebody who knows something about user interface design), you would not have had to. | 14:11 |
| → mrlemao joined | 14:12 |
| → LiamH joined | 14:12 |
|
djszapi
| not the userinterface is the problem for me. | 14:13 |
|
| the short of git knowledge/experience, I like use command-line, I mainly use command line for my purposes, so it's okay for me absolutely. | 14:14 |
| → jaysern joined | 14:14 |
| ← EricInBNE left | 14:14 |
| ← mrlemao left | 14:15 |
| Tank` → stsch | 14:17 |
|
gitte
| djszapi: oh well, then people have to continue to help in this channel. | 14:17 |
| mbuf|away → mbuf | 14:17 |
| ← gitte left | 14:17 |
|
Tichodroma
| gitte: yeah I also disagree. It's very well documented and the user interface is fine. But It's a complicated technology hence the documentation is a lot to take in. | 14:17 |
|
| So asking for help here is very useful. | 14:17 |
| → aigon joined | 14:18 |
| → corni__ joined | 14:18 |
| ← aigon left | 14:19 |
|
djszapi
| gitte, doener, loops @Ilari are all very helpful, sorry for them i didn't mention | 14:19 |
| → aigon joined | 14:19 |
|
Gitzilla
| The technology is not complicated; the concepts are different than what most SCM users are used to; the documentation could use a lot of work; the UI is inconsistent. | 14:19 |
| ← ivenkys left | 14:20 |
| ← jrmuizel left | 14:20 |
| mbuf → ajnr | 14:20 |
| ajnr → mbuf | 14:20 |
| ← corni_ left | 14:21 |
| → gunmuc joined | 14:24 |
| → vvsh joined | 14:29 |
| ← Tichodroma left | 14:30 |
| → _Mica_ joined | 14:31 |
| → surial joined | 14:32 |
|
surial
| So, I killed some branches on github via git push origin :branchName... | 14:32 |
|
| but if someone else, who had those branches before, does a git pull or git fetch, 'git branch -a' still lists these branches. | 14:33 |
|
| How do you fix that? | 14:33 |
| → nape joined | 14:33 |
| ← bremner_ left | 14:34 |
|
Aides
| does git branch -r list them? | 14:35 |
| → kukks joined | 14:35 |
|
bremner
| surial: man git-remote, look for prune | 14:36 |
|
Gitbot
| surial: the git-remote manpage can be found at http://git.or.cz/man/git-remote | 14:36 |
| → kampasky joined | 14:37 |
| ← aigon left | 14:38 |
| → hummingkid joined | 14:39 |
|
surial
| bremner: Thanks :) Just what I was looking for. | 14:39 |
|
| Is there any easy way I can check why my git repository is relatively large? | 14:39 |
|
| I used to check in some deliverables, and am no longer doing that. I can live with removing them retroactively, though, as it's been pushed out to a remote repo, I guess that's not a good plan. | 14:40 |
| → Axius joined | 14:40 |
| → mfilipe joined | 14:41 |
| ← parasti left | 14:42 |
| → ianw joined | 14:43 |
| ← madewokherd left | 14:43 |
| → j416 joined | 14:44 |
| ← _Mica1 left | 14:44 |
| → dirk2 joined | 14:44 |
| → icwiener joined | 14:44 |
|
ianw
| Does this make sense if I want to remove all of my merge commits from master: git fetch; git rebase origin/master master | 14:45 |
| → yaotti joined | 14:46 |
| → ianw_ joined | 14:47 |
| ← ianw left | 14:47 |
| ianw_ → ianw | 14:47 |
| ← nape left | 14:48 |
|
sitaram
| should work, I think... | 14:48 |
| → Grahack joined | 14:49 |
|
sitaram
| but if any of your merges had conflict resolutions etc I'm not sure what happens | 14:49 |
| → bdimcheff joined | 14:50 |
| → jfxberns joined | 14:54 |
|
bremner
| surial: basically it is like you say; if you can use git-filter-branch, but that will mess up people who already pulled your repo | 14:56 |
| → Mezner joined | 14:56 |
| ← mbuf left | 14:58 |
|
doener
| ianw: all merge commits that aren't also in origin/master | 14:59 |
| → rafpaf` joined | 14:59 |
|
doener
| sitaram: he'll most likely have to solve them again, unless he has rerere enabled, and hits the same conflicts again. Then rerere should be able to automatically fix them | 15:00 |
|
| sitaram: and of course, he might encounter entirely new conflicts | 15:00 |
| → mebus_ joined | 15:01 |
| ← j416 left | 15:01 |
| → madewokherd joined | 15:01 |
|
doener
| surial: http://git.pastebin.com/m5eb2a44b | 15:01 |
| → ilteris__ joined | 15:02 |
|
doener
| surial: you can save that as, for example, "git-find-large" somewhere in $PATH, make it executable, and then do "git find-large 20", to find the top 20 large objects in your repo | 15:02 |
| → corni_ joined | 15:03 |
|
doener
| surial: it only considers objects that are required for any ref. Objects that are prunable (either immediately or after a reflog entry expired) are ignored | 15:03 |
|
surial
| nice. | 15:03 |
|
| those prunables go away if I 'git gc', right? | 15:04 |
| ← rafpaf left | 15:04 |
|
doener
| "git gc" will drop objects that are immediately prunable (not reachable through any ref, nor through the reflog), if they're older than 2 weeks (default) | 15:04 |
|
| with "git gc --prune=0" it will prune all objects that aren't reachable through any ref nor through the reflogs | 15:05 |
|
| and to expire your reflogs (making them empty, might not exactly be what you want), you can do "git reflog expire --expire=0 --all" (or instead of --all, maybe --branches or a specific branch head, whatever you need) | 15:06 |
|
| if you know exactly which reflog entry is "bad", you can also drop just that one (though usually you have at least two, one in HEAD's reflog, one in the branch head's reflog) | 15:06 |
| ← joevano left | 15:06 |
|
mebus_
| is it possible to do git mv in one repository and then if I pull from it to do git mv in the local repo too? | 15:07 |
|
surial
| got it. This is working great. | 15:07 |
|
mebus_
| because now I got dublicate files. | 15:07 |
|
doener
| surial: note that the path shown for each size is just one name used for that blob. | 15:07 |
|
| surial: i.e. if you renamed a file at some point, and run filter-branch to get rid of one version, you might then discover that the script now shows a different name | 15:08 |
| ← Pupeno left | 15:08 |
|
doener
| surial: looking for a paths for a given blob is too expensive | 15:08 |
|
surial
| bremner: So, it'll mess with other people's stuff, but what if I can tell them all explicitly to git pull? Would that help? Or do they have to toss it and re-clone? | 15:10 |
|
| doener: Sure, but, in this case, I recognize the files, and they are indeed the big ones. | 15:10 |
|
doener
| surial: "git pull" wraps fetch + merge, so that would merge the new history, with what they have (the old history) == major mess up | 15:10 |
|
| surial: "git pull --rebase" _might_ work, but of course only if they don't have merge commits locally | 15:11 |
|
surial
| oh, that makes sense. So they'd basically have to fetch, toss their local branches, and remake them from the remotes. | 15:11 |
|
doener
| surial: see git-rebase(1) "RECOVERING FROM UPSTREAM REBASE" for a discussion | 15:12 |
|
surial
| or do that. Okay. Huh. Well, a guesstimate is that the repo size would drop from 100MB to 20MB if I move the website files into a separate project and delete those used-to-be-checked in deliverables. | 15:12 |
|
doener
| surial: it's basically the same thing | 15:12 |
| → Pupeno joined | 15:12 |
|
surial
| Okay. Well, we don't have too many contributors _yet_, so now is the time, I guess. Thanks for all the help. | 15:12 |
| → ff joined | 15:15 |
|
bremner
| surial: just make sure you rebase often, that will keep the number of contributors managable :) | 15:18 |
| ← corni__ left | 15:18 |
|
surial
| bremner: :) | 15:18 |
| → aidan joined | 15:20 |
| ← babilen left | 15:20 |
| qrush|away → qrush | 15:21 |
|
aidan
| I'm a little confused .. I've got my repos on github, I'm trying to push some changes, but I need to update my repos first (the push is rejected) .. My pull fials with: http://bin.cakephp.org/view/1460823539 | 15:24 |
| → hugoxrosa joined | 15:24 |
|
cbreak
| tried to specify? | 15:24 |
|
LiamH
| I'm trying to add a second remote and check out a branch from it, imitating the first example on the git remote man page http://www.kernel.org/pub/software/scm/git/docs/git-remote.html. However, the second git branch -r shows me the same result as the first. Is there a step missing? | 15:27 |
| ← stamina left | 15:28 |
| → zirpu joined | 15:29 |
| → babilen joined | 15:30 |
|
LiamH
| The git fetch returned no output | 15:31 |
| → belak joined | 15:31 |
|
aidan
| cbreak: specify what and where | 15:31 |
| ← belak left | 15:31 |
|
cbreak
| specify what the error message told you to specify | 15:32 |
|
| the branch you want to merge with | 15:32 |
|
| pull apparently is fetch and merge | 15:32 |
| → nevyn_ joined | 15:33 |
| → scarabx joined | 15:33 |
|
aidan
| there's only one nbranch, master | 15:34 |
|
| git pull <repository> <refspec> ... what's repository and refspec? | 15:35 |
|
ff
| man git-filter-branch | 15:37 |
|
Gitbot
| ff: the git-filter-branch manpage can be found at http://git.or.cz/man/git-filter-branch | 15:37 |
|
cbreak
| you can try git pull someremote master | 15:37 |
| → HardPhuck joined | 15:41 |
|
HardPhuck
| i'm a git first timer so please be gentle :) | 15:42 |
|
| how do i commit changes to the master repo? | 15:42 |
|
cbreak
| commit them locally | 15:42 |
|
| then push your changes | 15:42 |
| ← jaysern left | 15:43 |
| → Axius_ joined | 15:43 |
|
HardPhuck
| ah.. push then, let's try | 15:43 |
|
| error: unable to create temporary sha1 filename ./objects/fe: File exists | 15:44 |
|
Axius_
| I made a script for listing some files in a directoy.What do I need to put in the script to switch directly to that directory? | 15:44 |
| ← pcgod left | 15:44 |
|
LiamH
| OK, I found the problem; I think there's an error in the man page for git remote. It should have said "git fetch <remote-name>". | 15:44 |
|
cbreak
| Axius_: cd? | 15:45 |
| ← nevyn left | 15:46 |
| ← dunolie left | 15:47 |
| ← ff left | 15:48 |
|
akitada
| Is there any documentation that describes what each [svn-remote] attribute mean? | 15:48 |
| ← yaotti left | 15:49 |
| → davegb3 joined | 15:49 |
| ← khmarbaise left | 15:49 |
| ← davegb3 left | 15:50 |
| → yaotti_aw joined | 15:50 |
| yaotti_aw → yaotti | 15:50 |
| ← mfilipe left | 15:51 |
| ← magcius left | 15:52 |
|
loops
| akitada, man git-svn has some info | 15:53 |
|
Gitbot
| akitada: the git-svn manpage can be found at http://git.or.cz/man/git-svn | 15:53 |
|
loops
| LiamH, it doesn't have to be a remote-name, it can also be a URL. | 15:56 |
|
LiamH
| loops: OK, but the example on the man page simply says "git fetch" and that does nothing. | 15:57 |
| ← icwiener left | 15:57 |
| → pcgod joined | 15:57 |
|
loops
| LiamH, that should actually update all your remote tracking branches | 15:58 |
|
| LiamH, but it wont update any local branches | 15:58 |
| ← Axius left | 15:58 |
| → icwiener joined | 15:58 |
|
loops
| LiamH, however it will appear to do nothing if you're already up to date. it just returns to the shell prompt | 15:59 |
| → ianw_ joined | 15:59 |
| ← ianw left | 15:59 |
| ianw_ → ianw | 15:59 |
|
loops
| LiamH, try "git fetch -v" to prove this | 15:59 |
| → corni__ joined | 15:59 |
|
LiamH
| loops: Not until I gave the remote name did it pull anything from the new remote. I was already up to date on origin. | 16:00 |
| → dunolie joined | 16:01 |
|
loops
| LiamH, perhaps there is an issue with the very first time you fetch from a new remote? If you try "git fetch -v" now (without remote name), does it work? | 16:02 |
| → jaysern joined | 16:02 |
|
LiamH
| loops: Yes, it looks fine. | 16:02 |
|
| It was an issue with a first-time fetch from a new remote, but I took the example in the man page to be that situation. | 16:03 |
| → ianw_ joined | 16:05 |
| ← ianw left | 16:05 |
| ianw_ → ianw | 16:05 |
| Thell|Away → Thell | 16:06 |
| → justin-george joined | 16:06 |
|
HardPhuck
| hmm i get errors when i try to 'push' could that have anything to do with permissions? | 16:07 |
|
loops
| HardPhuck, yes. | 16:07 |
| ← aidan left | 16:07 |
|
HardPhuck
| http://pastebin.com/md47ee3d | 16:07 |
|
| this | 16:07 |
| ← MisterN left | 16:08 |
|
loops
| LiamH, do you have more than one remote configured ? | 16:10 |
|
LiamH
| loops: yes | 16:11 |
| → flaguy48 joined | 16:11 |
|
loops
| LiamH, so, it will only pull from one remote on each invocation, and it will try to pick the appropriate remote based on your currently checked out branch | 16:12 |
| ← nadim left | 16:12 |
|
loops
| LiamH, so until you fetch for the first time, and create a branch from what you fetch, the first remote will be being fetched (and presumably be up-to-date) | 16:13 |
|
| LiamH, which instructions were you following in the docs ? | 16:13 |
| → mastro joined | 16:14 |
| → nadim joined | 16:14 |
|
LiamH
| git help remote, under "EXAMPLES", the first one "Add a new remote, fetch, and check out a branch from it". To the letter, of course with my names substituted. | 16:15 |
| → Ozzy joined | 16:15 |
|
mastro
| newbie question: what's the best way to abort a merge? (i always used rebase wich let me do --continue or --abort and I cant find the --abort command on git merge) | 16:15 |
| ← corni_ left | 16:15 |
|
LiamH
| The "git fetch" there has no argument, but the response is said to be " * refs/remotes/linux-nfs/master: storing branch ´master´ ..." | 16:16 |
|
| I don't think that's right. | 16:16 |
| ← Ozzy left | 16:17 |
| ← Axius_ left | 16:18 |
| ← ianw left | 16:19 |
| ← babilen left | 16:20 |
|
mastro
| I did a git reset --hard HEAD | 16:20 |
|
| but I don't know if this is the best way to do so.... | 16:21 |
| → TML joined | 16:23 |
|
mastro
| another thing: I'm doing some testing: I created a new git repo.. then I cloned it with --bare option in another folder... added the bare-repo as remote location and cloned the bare repo in another directory: so now I have 2 directory that track the same repo (all locally) | 16:24 |
| → ianw joined | 16:25 |
|
mastro
| I noticed it created 2 branch in my remote repo: master and HEAD | 16:25 |
|
| why that? | 16:25 |
|
ianw
| If I have a commit in master and I want to remove a bunch of merge commits with origin/master, can I do this safely: git rebase origin/master master | 16:25 |
| → Fikeis joined | 16:26 |
| → dvyjones joined | 16:29 |
|
dvyjones
| How do I undo a git-add? | 16:29 |
| → mjf joined | 16:31 |
| → qhoxie joined | 16:31 |
|
wereHamster
| dvyjones: git reset or git rm --cached | 16:33 |
|
dvyjones
| git rm --cached doesn't remove the file? | 16:33 |
|
wereHamster
| only from the index | 16:33 |
|
dvyjones
| Umm, wait a minute. | 16:34 |
|
| Sorry, it wasn't a git-add, but a git-rm (the files are still there. | 16:34 |
| → JED3 joined | 16:34 |
|
wereHamster
| what exactly did you do? | 16:34 |
| → corni_ joined | 16:34 |
|
dvyjones
| Nothing. | 16:34 |
|
| I just noticed that the commit would remove a lot of files. | 16:35 |
|
wereHamster
| and you want to undo 'nothing'? | 16:35 |
| → mfilipe joined | 16:35 |
| ← tbuehlmann left | 16:35 |
| qrush → qrush|away | 16:39 |
| → schierbeck joined | 16:40 |
| ← ianw left | 16:41 |
| → ianw joined | 16:41 |
| ← ianw left | 16:43 |
| → cloudhead joined | 16:46 |
| steveire → steveire_ | 16:48 |
| ← jtdowney left | 16:49 |
| ← corni__ left | 16:50 |
| ← jfxberns left | 16:51 |
| → aliceinwire joined | 16:52 |
| → jrmuizel joined | 16:52 |
| → MisterN joined | 16:53 |
| ← JED3 left | 16:53 |
| → schlortoo joined | 16:54 |
| ← jrmuizel left | 16:54 |
| → _jason553839 joined | 16:56 |
| ← compy left | 16:57 |
| → compy_ joined | 16:57 |
| → smuf joined | 16:58 |
| → pheaver joined | 17:00 |
| → GodEater joined | 17:00 |
| ← JKac3BEq left | 17:07 |
| → corni__ joined | 17:09 |
| → dreiss joined | 17:10 |
| ← objorn left | 17:11 |
| ← Mezner left | 17:14 |
| ← mastro left | 17:15 |
| ← corni_ left | 17:17 |
| ← simNIX left | 17:17 |
| → parasti joined | 17:19 |
| → ereslibre joined | 17:19 |
| → jfxberns joined | 17:21 |
| → gitte joined | 17:22 |
| → relix joined | 17:24 |
| → lresende joined | 17:24 |
| ← _jason553839 left | 17:24 |
| Guest33124 → sdboyer | 17:26 |
| → jtdowney joined | 17:26 |
| → corni_ joined | 17:26 |
| ← akitada left | 17:27 |
| ← jtdowney left | 17:27 |
| ← corni__ left | 17:28 |
| → jtdowney joined | 17:28 |
| ← jtdowney left | 17:29 |
| → jtdowney joined | 17:30 |
| ← jtdowney left | 17:31 |
| → jtdowney joined | 17:32 |
| ← xenoterracide left | 17:32 |
| → eletuchy joined | 17:33 |
| ← jtdowney left | 17:33 |
| → jtdowney joined | 17:34 |
| ← jtdowney left | 17:35 |
| → defectiv joined | 17:36 |
| → jtdowney joined | 17:37 |
| → xenoterracide joined | 17:37 |
| ← jtdowney left | 17:38 |
| → jtdowney joined | 17:40 |
| → abms1116_ joined | 17:41 |
| ← jtdowney left | 17:42 |
| ← ciskje left | 17:42 |
| → jtdowney joined | 17:43 |
| ← abms1116_ left | 17:44 |
| → abms1116 joined | 17:45 |
| → g4mm4 joined | 17:46 |
| ← jfxberns left | 17:47 |
| ← pantsman left | 17:49 |
| ← smuf left | 17:50 |
| → smuf joined | 17:51 |
| ← abms1116 left | 17:53 |
| ← schlortoo left | 17:55 |
| ← dunolie left | 18:00 |
| ← jtdowney left | 18:01 |
| → ixti joined | 18:01 |
| ← mfilipe left | 18:03 |
| rafpaf` → rafpaf | 18:03 |
| ← zirpu left | 18:05 |
| qrush|away → qrush | 18:07 |
| → mcolyer joined | 18:10 |
| ← Tuomas left | 18:12 |
|
mcolyer
| I am using jgit and I see that GitIndex is deprecated. I would like to be able to check things out but the only way that I can see to do that is using WorkDirCheckout which uses GitIndex. Can someone point me in the right direction? | 18:12 |
| → objorn joined | 18:12 |
| ← schierbeck left | 18:14 |
| → dunolie joined | 18:14 |
| ← objorn left | 18:15 |
|
loops
| mcolyer, spearce or robinr would be right people to answer here, but i think you can safely use WorkDirCheckout since it is not marked as deprecated. Likely it will be updated to use DirCache internally at some point | 18:15 |
| → rtl joined | 18:16 |
|
mcolyer
| loops: Thanks, that helps. | 18:17 |
|
rtl
| how would I delete a branch name prefixed with a dash? | 18:18 |
| ← smuf left | 18:19 |
| ← tazDg left | 18:19 |
| compy_ → comps | 18:19 |
|
Fissure
| hm, typically one uses -- to signal end of options with gnu tools | 18:19 |
|
| does branch -d -- branchname work? | 18:19 |
|
loops
| rtl, or git branch -d refs/heads/-branch | 18:20 |
| ← surial left | 18:20 |
| → tazDg joined | 18:20 |
|
Fissure
| why didn't i think of that | 18:20 |
|
| the second step is to smack the person that created such a silly branch name | 18:20 |
|
rtl
| ah trueness. | 18:20 |
|
| Fissure: hah, yarly. | 18:21 |
|
loops
| Fissure, your suggestion worked | 18:21 |
|
Fissure
| hm, good to know | 18:22 |
|
rtl
| Yea, both work, thanks peeps. | 18:22 |
| → rolfb joined | 18:24 |
| → aigon joined | 18:24 |
| → alvarezp joined | 18:29 |
| → Aikawa joined | 18:32 |
| ← Aikawa_ left | 18:32 |
| → jceb joined | 18:32 |
| ← nadim left | 18:35 |
| ← ilteris_ left | 18:35 |
| ← onigiri left | 18:36 |
|
jaggz
| do any of you live in Los Angeles? | 18:36 |
| → nadim joined | 18:36 |
| → danzat joined | 18:38 |
| ← qhoxie left | 18:38 |
|
danzat
| Any idea what would make git really slow when cloning/pulling? | 18:38 |
|
Fissure
| danzat: slow network, slow computers.... | 18:39 |
|
danzat
| Fissure, I can assure you it's not that | 18:39 |
|
Fissure
| is it using cpu or sitting there? | 18:39 |
|
danzat
| just sitting there | 18:40 |
|
| hanging | 18:40 |
|
| taking its time | 18:40 |
|
Fissure
| over what protocol? | 18:40 |
|
danzat
| git:// | 18:40 |
| → schierbeck joined | 18:41 |
| ← schierbeck left | 18:41 |
| ← jaysern left | 18:41 |
|
danzat
| is it using some specific port maybe? | 18:41 |
|
Fissure
| git:// is port 9418 | 18:41 |
|
danzat
| I'll try to open it | 18:41 |
|
loops
| danzat, is the problem specific to cloning a specific repo? maybe that repo is just large and needs repacking | 18:42 |
|
Fissure
| heh, yeah, having the connection time out could cause that kind of slowness :P | 18:42 |
|
danzat
| no | 18:42 |
|
| i get this from two hosts | 18:42 |
|
Fissure
| the repos don't have a huge number of branches/tags, do they? | 18:43 |
|
danzat
| no | 18:43 |
|
| do you want to try yourself? | 18:43 |
| → enherit joined | 18:43 |
| qrush → qrush|away | 18:43 |
|
loops
| danzat, sure. what's the link | 18:44 |
|
danzat
| git://git.tuxfamily.org/gitroot/qucsqt4dev/qucsqt4.git | 18:44 |
| → bsdvodsky joined | 18:44 |
|
loops
| yeah, cloned in 15 seconds | 18:44 |
|
danzat
| still hangs here | 18:45 |
| ← defectiv left | 18:45 |
|
loops
| well hanging is different than slow | 18:45 |
|
| likely you have some firewall issure etc | 18:45 |
| ← alley_cat left | 18:45 |
|
danzat
| the firewall isn't on | 18:45 |
|
Ilari
| danzat: Try to use telnet? If it connects, type crap there and see if it disconnects you then? | 18:45 |
|
danzat
| and I've opened that port in my router | 18:46 |
|
rolfb
| danzat: you've stopped the process and retried it? | 18:46 |
|
danzat
| it gave me this line: "remote: Counting objects: 11499, done." quickly enough | 18:46 |
| → hvoigt joined | 18:46 |
|
Ilari
| danzat: Then "hung"? | 18:47 |
|
danzat
| yes | 18:48 |
|
jaggz
| strace it? | 18:48 |
|
Ilari
| I would guess it's waiting for data from network... | 18:49 |
| ← dirk2 left | 18:49 |
|
jaggz
| I hate waiting too long for data from network | 18:49 |
| → ephcon joined | 18:50 |
|
Ilari
| And do idling TCP sockets really time out (the endpoints of connection won't try to maintain them)? | 18:50 |
|
loops
| danzat, you've tried a few times, and same thing each time? | 18:51 |
|
danzat
| getting the strace | 18:51 |
| ← tehbaut left | 18:51 |
| → tehbaut joined | 18:52 |
| ← _Mica_ left | 18:52 |
| → |CheckBit| joined | 18:52 |
| ← |CheckBit| left | 18:52 |
|
danzat
| http://pastebin.mozilla.org/677201 | 18:53 |
| → qhoxie joined | 18:54 |
|
danzat
| I killed it after it hanged | 18:54 |
|
| for a minute | 18:54 |
|
Ilari
| danzat: Completes object negotiation, then starts to wait for pack data, which doesn't arrive. | 18:55 |
|
| danzat: Actually, there's child processes involved. Maybe strace with -f would be more useful? | 18:55 |
|
loops
| Ilari, what about the NAK at 743.. is it normal? | 18:56 |
|
danzat
| ok | 18:56 |
| → onigiri joined | 18:56 |
| ← wshimmy left | 18:56 |
|
Ilari
| loops: Yes, its normal. | 18:57 |
|
rolfb
| is there a good way to update a repo according to its .gitignore? by that I mean making the repo behave is if the gitignore was always in place even if its been changed at a later point | 18:58 |
|
| i've been using 'cat .gitignore | xargs git rm --cached | 18:59 |
| ← hvoigt left | 18:59 |
|
danzat
| with -f: http://pastebin.mozilla.org/677204 | 18:59 |
| ← aigon left | 18:59 |
|
thiago_home
| rolfb: I think you need to do like you're doing: manually | 19:00 |
| → aigon joined | 19:00 |
|
rolfb
| ok | 19:00 |
|
| but what will happen to people who has those files locally in their repo if they pull the repo after i did this? | 19:01 |
| ← aigon left | 19:01 |
| → aigon joined | 19:01 |
|
Ilari
| danzat: What happened to that 30620 process? It didn't seem to enter kernel to wait for anything... | 19:01 |
| ← aigon left | 19:02 |
|
loops
| danzat, that works but has some corner cases. doener came up with better one liner last night: git ls-files -c -i --exclude-standard -z | xargs -0r git rm --cached | 19:02 |
| → aigon joined | 19:02 |
| ← aigon left | 19:03 |
|
loops
| ooh damn.. rolfb ^ | 19:03 |
| → jacob_ joined | 19:03 |
|
rolfb
| loops: ? | 19:03 |
| jacob_ → Guest76688 | 19:03 |
|
loops
| rolfb, those files will be removed for them | 19:03 |
| ← jchris left | 19:04 |
| Guest76688 → j_christ | 19:04 |
|
rolfb
| thats kinda of bad? | 19:04 |
|
loops
| rolfb, that line above was for you | 19:04 |
|
rolfb
| i figured :) | 19:04 |
|
| thanks | 19:04 |
|
loops
| rolfb, well they can recover copies easily enough. But yeah, it's a pain | 19:05 |
| → aigon joined | 19:05 |
|
lenix^
| is git supported wel in eclipse? | 19:05 |
| → hvoigt joined | 19:05 |
|
loops
| lenix^, EGit is actively developed yeah | 19:05 |
|
rolfb
| our issue is that sqlite3 databases which contains mostly test-data doesn't version great | 19:06 |
|
| so it might be better to use a remotely shared test-db? | 19:06 |
|
| for our group | 19:06 |
| ← bsdvodsky left | 19:06 |
|
loops
| rolfb, whatever works. You might consider versioning ascii database dumps rather than the binary. | 19:07 |
| ← danzat left | 19:08 |
|
rolfb
| interesting | 19:08 |
|
lenix^
| sweet tits | 19:08 |
|
rolfb
| git won't fuck up the structure? | 19:09 |
|
loops
| git wont touch it at all | 19:09 |
|
rolfb
| won't touch the dump? | 19:09 |
|
loops
| Right.. no more than it would touch the binary database | 19:09 |
|
rolfb
| i'm not following | 19:10 |
|
loops
| me either apparently :o) | 19:10 |
|
rolfb
| if i dump to db to ex: yaml | 19:11 |
|
loops
| How would Git fuck up the structure? The structure of what? | 19:11 |
|
rolfb
| yaml has a conscise structure if i want to load the data into the db again | 19:11 |
|
| so i'm just wondering if there is a loooooot of lines between parent structure and the new lines from a different merge, if it would fuck up the structure and put the wrong fields in the wrong table | 19:12 |
|
loops
| I suppose you'd have to be careful when merging, might require a custom merge strategy. | 19:12 |
|
rolfb
| right | 19:12 |
|
| so remote db we do | 19:12 |
|
DrNick
| why dump to yaml when you can dump to SQL? | 19:12 |
|
rolfb
| :) | 19:12 |
| → jrmuizel joined | 19:13 |
|
rolfb
| better consistency between databases | 19:13 |
|
| database-types | 19:13 |
|
DrNick
| ok, whatever, if you want to write your own YAML dumper instead of just using the sqlite3 .dump command, go ahead | 19:14 |
|
rolfb
| DrNick: yaml db plugin already exist | 19:14 |
|
| :) | 19:14 |
| → priidu joined | 19:15 |
|
DrNick
| echo .dump | sqlite3 blah.db > blah.sql | 19:15 |
| ← aigon left | 19:16 |
| → aigon joined | 19:16 |
| ← aigon left | 19:17 |
| → keex joined | 19:17 |
| → tjc joined | 19:19 |
| ← jrmuizel left | 19:20 |
|
j_christ
| If someone can help with this, it would be great... So, I can use git-tag to get a list of all tagged commits, but is there a way to tell if the current working directory is tagged? | 19:21 |
| → aigon joined | 19:21 |
| → danzat joined | 19:22 |
| ← aigon left | 19:22 |
| → aigon joined | 19:22 |
| ← mebus_ left | 19:23 |
|
j_christ
| Or I guess alternatively, how to get the sha1 for the working directory so that I can compaire it to sha1's in the .git/refs/tag dir? | 19:23 |
|
loops
| j_christ, maybe something like git describe --tags --exact-match HEAD | 19:24 |
|
j_christ
| loops, I think I can work with that... Thanks. | 19:25 |
|
rudi_s_
| j_christ: git tag --contains $(git rev-parse HEAD) would work too. | 19:25 |
| ← hvoigt left | 19:25 |
|
rudi_s_
| But loops one is better. | 19:25 |
| Thell → Thell|Away | 19:26 |
| → adam12 joined | 19:27 |
| ← aigon left | 19:27 |
| → aigon joined | 19:27 |
|
j_christ
| rudi_s, git tag --contains $(git rev-parse HEAD) does not seem to work as well. | 19:27 |
|
rudi_s_
| j_christ: Hm, works for me (but loops one is better anyway). | 19:29 |
|
j_christ
| rudi_s, if I'm on a tagged branch it returns the tag, but if I'm not, it returned the tag as well. | 19:30 |
| → reidab joined | 19:30 |
|
Ilari
| danzat: I noticed that that paste seems to be truncated... | 19:30 |
|
rudi_s_
| j_christ: Hm, no idea, works for me. | 19:30 |
|
loops
| j_christ, the --contains means that the tag will be displayed if it is reachable from HEAD (ie. anywhere in the history), whereas exact match means it _is_ the HEAD | 19:31 |
|
| j_christ, that is --contains means if HEAD is reachable from a given tag | 19:31 |
| → bremner_ joined | 19:32 |
|
danzat
| Ilari, http://pastebin.com/m8cb3d21 | 19:32 |
|
j_christ
| loops, I understand... was just reading something about that in man | 19:32 |
| → owen1 joined | 19:32 |
| ← tjc left | 19:32 |
| → joevano joined | 19:32 |
|
owen1
| i installed gitosis, typing sudo -H -u git gitosis-init < /tmp/id_rsa.pub result in: env: -H: No such file or directory any clues? | 19:33 |
| → c15c8ra1n joined | 19:34 |
| ← aigon left | 19:34 |
| ← c15c8ra1n left | 19:34 |
| → aigon joined | 19:35 |
|
loops
| owen1, maybe someone will pipe up with an answer, you might consider gitolite, which is more actively developed these days: http://github.com/sitaramc/gitolite | 19:35 |
| → bremner__ joined | 19:36 |
| ← bremner__ left | 19:36 |
|
Rhonda
| owen1: You used wrong commandline options, -H requires an argument, see man sudo. | 19:37 |
|
owen1
| loops: thanks, i'll take a look | 19:37 |
|
Ilari
| danzat: Okay, looking at situation: The 19 process (sideband demux?) seems to block on network input. 20 process (index-pack) blocks on output from 19 process. 18 process (clone) blocks on output of 19 process. | 19:38 |
|
Rhonda
| owen1: erm, forget it, did read it wrong myself. I guess your git user doesn't have a home set in your passwd file - or that directory isn't existing. | 19:38 |
| ← aigon left | 19:38 |
| → aigon joined | 19:38 |
| ← aigon left | 19:39 |
| → aigon joined | 19:39 |
| ← aigon left | 19:39 |
|
owen1
| Rhonda: what do u mean 'home set in my password file'? | 19:40 |
| ← p_masho left | 19:40 |
| → aigon joined | 19:40 |
|
owen1
| i have dir called /home/git | 19:40 |
|
Rhonda
| And is that set as home of the git user? | 19:41 |
|
| getent passwd git | 19:41 |
|
danzat
| Ilari, what does it mean? | 19:41 |
| ← aigon left | 19:41 |
| → jaysern joined | 19:41 |
| → bremner__ joined | 19:42 |
| → aigon joined | 19:42 |
|
Ilari
| danzat: It seems that the hang is because connection hangs... | 19:42 |
|
danzat
| hm... | 19:43 |
| ← aigon left | 19:43 |
| → WALoeIII_ joined | 19:43 |
|
owen1
| Rhonda: i think so. i run the adduser command as described on the blog post - sudo adduser --system --shell /bin/sh --gecos 'git version control' --group --disabled-password --home /home/git git | 19:44 |
| ← pheaver left | 19:44 |
|
danzat
| Ilari, can I specify the listening port? maybe I got the wrong port open | 19:44 |
| ← WALoeIII_ left | 19:45 |
| → pheaver joined | 19:45 |
| → aigon joined | 19:45 |
| ← aigon left | 19:45 |
| → WALoeIII_ joined | 19:45 |
|
Rhonda
| owen1: If "getent passwd git | cut -d: -f6" does print /home/git then it should be alright. But yes, gitolite might be more interesting these days. :) | 19:45 |
|
Ilari
| danzat: Definitely not wrong port. The have/want negotiations complete in that trace. | 19:46 |
| → aigon joined | 19:46 |
| ← aigon left | 19:46 |
| → aigon joined | 19:47 |
| → sh1mmer joined | 19:48 |
| ← eean left | 19:48 |
|
owen1
| Rhonda: it printed /home/git. btw, i am using my laptop machine both as server and client so my rsa.pub is not from different machine. could this be the issue? | 19:48 |
| ← aigon left | 19:48 |
| → aigon joined | 19:48 |
| ← aigon left | 19:49 |
|
owen1
| Rhonda: i read about gitolite. the main difference is permission per branch, which i don't really care about. is there anything else? | 19:49 |
|
Ilari
| owen1: 'sudo -H -u git /bin/bash' complains? | 19:49 |
|
owen1
| Ilari: yes. got the same error | 19:49 |
|
Ilari
| owen1: Looks like sudo is busted... | 19:49 |
|
j_christ
| Another question... Is there a way to tell if your working directory is dirty (other than git status)? | 19:50 |
|
Ilari
| owen1: I think one can work around it. 'sudo -u git /bin/bash' does work? | 19:50 |
| → aigon joined | 19:50 |
| ← bremner_ left | 19:50 |
|
owen1
| Ilari: env: -u: No such file or directory | 19:50 |
| ← aigon left | 19:51 |
| ← aspotashev_ left | 19:51 |
|
Ilari
| owen1: Can you get root? | 19:51 |
| → aspotashev joined | 19:51 |
| → aigon joined | 19:52 |
| ← aigon left | 19:52 |
|
Rhonda
| owen1: What does sudo -l give you? If it's longish, pastebin it. | 19:52 |
| → g0bl1n joined | 19:52 |
|
owen1
| Rhonda: env: -l: No such file or directory | 19:52 |
|
Rhonda
| which sudo | 19:52 |
| ← Blackshark left | 19:52 |
| → pantsman joined | 19:53 |
| ← krynnotaur left | 19:53 |
|
Rhonda
| I think your sudo is b0rked. | 19:53 |
|
Ilari
| owen1: root => root shell, that is. | 19:53 |
|
owen1
| /usr/bin/sudo | 19:53 |
|
| Ilari: i am not sure what do u mean by that. sorry (-: | 19:53 |
| psoo_ → psoo | 19:54 |
|
Ilari
| owen1: Shell as user root. | 19:54 |
|
owen1
| Ilari: can u tell me how? | 19:54 |
|
Rhonda
| owen1: If sudo -l doesn't work then you have a problem. But it's not git related. | 19:54 |
|
Ilari
| owen1: Maybe sudo works enough for 'sudo /bin/bash'. | 19:54 |
| → jtdowney joined | 19:55 |
| ← gitte left | 19:56 |
|
owen1
| Ilari: i am confused. what should i type? sudo /bin/bash ? | 19:56 |
|
Ilari
| owen1: Ah, what's the current user? | 19:57 |
| → bremner_ joined | 19:57 |
| ← jtdowney left | 19:57 |
|
owen1
| Ilari: i logged in to the machine with oren. is that what u mean? | 19:57 |
| → davido joined | 19:57 |
|
Ilari
| owen1: Well, does 'sudo /bin/bash' also complain or give a shell? | 19:57 |
|
owen1
| Ilari: no complain | 19:58 |
| ← bremner_ left | 19:58 |
|
owen1
| Ilari: i see bash again | 19:58 |
|
| or shell. whatever u call this. | 19:58 |
| → bremner_ joined | 19:58 |
|
Ilari
| owen1: Try 'whoami'... It should show 'root'. | 19:59 |
| → Florin_ joined | 19:59 |
|
owen1
| Ilari: correc | 19:59 |
|
| t | 19:59 |
|
Ilari
| owen1: Then 'su --login git' (note, su, not sudo). | 19:59 |
| → bcardarella joined | 20:00 |
|
loops
| j_christ, git ls-files --exclude-standard -o -m | 20:00 |
| ← tazDg left | 20:00 |
| ← WALoeIII left | 20:00 |
| WALoeIII_ → WALoeIII | 20:00 |
|
owen1
| Ilari: done | 20:00 |
| ← DavidKlein left | 20:00 |
|
j_christ
| loops, cool, thanks. | 20:00 |
| → schierbeck joined | 20:01 |
|
Ilari
| owen1: Now 'whoami' output should have changed to 'git'. And 'echo $HOME' should show '/home/git', right? | 20:01 |
| ← Florin_ left | 20:01 |
|
owen1
| Ilari: correct | 20:01 |
|
Ilari
| owen1: Now try 'gitosis-init </tmp/id_rsa.pub'. | 20:02 |
|
owen1
| Ilari: i use ubuntu 9.04, btw | 20:02 |
| → aigon joined | 20:02 |
|
owen1
| Ilari: works! so what is the issue with my sudo? | 20:03 |
| → tazDg joined | 20:03 |
|
Ilari
| owen1: No idea. | 20:03 |
| → JKac3BEq joined | 20:03 |
|
Ilari
| owen1: Now in another shell, try 'ssh git@localhost'. It should throw complaint about SSH_ORIGINAL_COMMAND. | 20:03 |
|
owen1
| Ilari: Ilari correct | 20:04 |
| ← dunolie left | 20:05 |
|
Ilari
| owen1: One final sanity check. 'ls -l ~git/repositories/gitosis-admin.git/hooks/post-update'. What does that show (the whole line)? | 20:05 |
|
owen1
| Ilari: i run it as the regular user, not git - ls: cannot access /home/git/repositories/gitosis-admin.git/hooks/post-update: Permission denied | 20:06 |
|
Ilari
| owen1: Run it as git user. | 20:07 |
|
| owen1: Since in normal operation it gets run as gitosis user. | 20:07 |
|
owen1
| Ilari: when u say 'run it as a git user' u mean type: su --login git ? | 20:08 |
|
Ilari
| owen1: Don't you have the shell as git user still open? | 20:08 |
|
owen1
| Ilari: ho. ok | 20:09 |
|
Ilari
| owen1: Well, open one (that sudo and then su should work). | 20:09 |
|
| owen1: (some command line params needed, see the commands in backlog). | 20:09 |
|
owen1
| Ilari: -rw-r--r-- 1 git git 69 2009-10-18 13:06 /home/git/repositories/gitosis-admin.git/hooks/post-update | 20:10 |
|
Ilari
| owen1: Ouch. Chmod 755 that file. | 20:10 |
|
| owen1: After that, it should show '-rwxr-xr-x 1 git git 69 2009-10-18 13:06 /home/git/repositories/gitosis-admin.git/hooks/post-update' | 20:11 |
| ← schambers1 left | 20:12 |
|
owen1
| Ilari: one sec. from some reason i don't have tab complete. | 20:12 |
| ← malumalu left | 20:13 |
|
Ilari
| owen1: Don't you have select and paste? | 20:13 |
|
owen1
| Ilari: it asked my for password for the user git. what is it? | 20:14 |
|
| Ilari: unless i am suppose to do all this with the user oren or the root? | 20:14 |
|
Ilari
| owen1: su asks? If you run it as root, it won't. | 20:14 |
|
owen1
| Ilari: i run it like this: sudo chmod 755 post-update | 20:15 |
|
| (i cd into the correct dir) | 20:15 |
|
Ilari
| owen1: What does 'whoami' show? | 20:15 |
| ← bcardarella left | 20:15 |
|
owen1
| Ilari: git | 20:16 |
|
Ilari
| owen1: Then 'chmod 755 post-update' should work. | 20:16 |
| ← reidab left | 20:16 |
| → Stravy joined | 20:16 |
| ← jceb left | 20:16 |
|
Ilari
| owen1: Now 'ls -l post-update' should show that the permissions have changed... | 20:17 |
|
owen1
| -rwxr-xr-x | 20:17 |
| → corni__ joined | 20:17 |
| ← mbroeker left | 20:17 |
| ← Fikeis left | 20:18 |
| ← bremner__ left | 20:18 |
| ← g0bl1n left | 20:18 |
|
Ilari
| owen1: Yup. Now you should be set to clone the gitosis admin repo (in normal user shell): 'git clone git@localhost:gitosis-admin.git'. | 20:18 |
| → dwmw2_gone joined | 20:18 |
|
owen1
| Ilari: works. thank you!! | 20:19 |
|
| Ilari: i am curious to understand what the hell is wrong with my laptop | 20:19 |
| ← rleigh left | 20:19 |
|
Ilari
| owen1: Sudo being busted is OS-level problem... | 20:20 |
| → dunolie joined | 20:21 |
| ← aigon left | 20:21 |
| ← j_christ left | 20:21 |
| → xanonus joined | 20:22 |
| → jtdowney joined | 20:22 |
| → erikvold joined | 20:22 |
|
rolfb
| Ilari: not PIBCAP? | 20:22 |
|
| err | 20:22 |
| → slabbeh joined | 20:22 |
|
rolfb
| pibcac | 20:22 |
| ← corni__ left | 20:23 |
|
LotR
| ITYM PEBKAC :) | 20:23 |
|
owen1
| what is the main reason for using gitolite over gitosis? | 20:24 |
|
loops
| owen1, per branch permissions, easier? admin | 20:24 |
| ← lenix^ left | 20:24 |
| ← corni_ left | 20:25 |
|
Ilari
| owen1: Well, let's say that you want that sudo fixed before you migrate from gitosis to gitolite. Gitolite is mostly intended to be admined using remote shell... | 20:25 |
| ← Pupeno left | 20:26 |
| → Pupeno joined | 20:27 |
|
owen1
| Ilari: what should i look for when googling for my issue? ask for help with sudo -l ? | 20:27 |
| → khmarbaise joined | 20:28 |
|
Rhonda
| owen1: Check what is in your sudoers. | 20:28 |
|
| Content of /etc/sudoers that is. | 20:28 |
| ← kampasky left | 20:28 |
| → kampasky joined | 20:29 |
|
owen1
| Defaults env_reset | 20:29 |
|
| root ALL=(ALL) ALL | 20:29 |
| ← jaysern left | 20:30 |
|
owen1
| %admin ALL=(ALL) ALL | 20:30 |
|
Ilari
| To me, it looks more like sudo does accept the command, but treats all that -H and -u and those as part of command. | 20:30 |
| → ilteris_ joined | 20:31 |
|
patrikf
| I read so much sudo -l here. shouldn't that be sudo -i? | 20:32 |
| → bremner__ joined | 20:35 |
| ← bremner_ left | 20:37 |
|
Rhonda
| Ilari: Yes, but I have no clue why it would do that, thought it might be one of the options set in there ... | 20:38 |
|
| patrikf: No, sudo -l displays what you can do. | 20:38 |
| → eparis joined | 20:38 |
| → _jason553839 joined | 20:39 |
|
eparis
| git-am is complaining because the patch tried to change a file that was not in tree. I want to just continue and have it drop that hunk. I can't git-add a file that isn't there (can I?) I can't git-am --resolved.... how do I make it just keep going? | 20:40 |
|
| (i'm reordering some patches, so this doesn't surprise me that the file doesn't exist and I'm ok with that) | 20:42 |
| ← Grahack left | 20:42 |
|
Ilari
| eparis: 'git rm --cached <file>' and then 'git am --resolved'? | 20:42 |
| ← ludde left | 20:44 |
|
eparis
| $ git rm --cached fs/notify/fanotify/fanotify.c | 20:44 |
|
| fatal: pathspec 'fs/notify/fanotify/fanotify.c' did not match any files | 20:44 |
|
Ilari
| eparis: 'git status' lists what as unmerged or some other weird status? | 20:44 |
|
eparis
| is say it's clean. | 20:45 |
| ← jaggz- left | 20:45 |
|
Ilari
| eparis: 'git am --skip' then? | 20:45 |
|
eparis
| But it did make changes (or should have) to other files..... | 20:45 |
|
Ilari
| eparis: Well, status should show changes to those files then... | 20:46 |
|
eparis
| oh well, I'll just do it the hard way, revert all of it, drop that hunk from the mbox, reapply the whole mbox. | 20:46 |
| → reidab joined | 20:47 |
| ← qhoxie left | 20:47 |
| ← owen1 left | 20:49 |
| ← lucs left | 20:49 |
| → khmarbaise_ joined | 20:52 |
| ← rtl left | 20:53 |
| → seb_ joined | 20:57 |
| seb_ → |Lupin| | 20:57 |
| → rtl joined | 20:57 |
|
|Lupin|
| good evening, everybody | 20:57 |
| ← loops left | 21:00 |
| ← khmarbaise left | 21:00 |
| khmarbaise_ → khmarbaise | 21:00 |
|
Ilari
| |Lupin|: Pipe characters because they feel distinctive? :-) | 21:00 |
| → aidan joined | 21:01 |
|
aidan
| What do I do about this: html/config/core.php: needs update | 21:01 |
|
| git pull (gives that) | 21:02 |
|
Ilari
| aidan: You have uncommitted changes to that file... | 21:02 |
| ← bremner__ left | 21:02 |
| → jaysern joined | 21:03 |
| ← WALoeIII left | 21:03 |
| → WALoeIII joined | 21:03 |
|
|Lupin|
| Ilari: | characters for the modulus... that's a way of reminding me to be always positive... :-) | 21:04 |
| ← adam12 left | 21:04 |
| → Mezner joined | 21:07 |
| → h0nk joined | 21:08 |
| ← _jason553839 left | 21:10 |
| → hvoigt joined | 21:10 |
| ← h0nk left | 21:12 |
| ← ferdy left | 21:13 |
| ← tazDg left | 21:13 |
| → murph joined | 21:15 |
|
aidan
| Ilari: how can I just pull master and overwrite any changes? | 21:15 |
| ← selckin left | 21:15 |
| ← ia left | 21:15 |
|
murph
| Is there a good way to get a diff/diffstat of all changes in the last 24 hours? | 21:15 |
| ← keex left | 21:15 |
|
Ilari
| aidan: 'git stash' and then 'git pull origin master'? | 21:15 |
|
|Lupin|
| aidan: git reset ? | 21:16 |
|
| (speaking under the git experts' control) | 21:16 |
|
| oops I'm wrong apparently... | 21:16 |
| → sgh joined | 21:17 |
|
sgh
| Hi | 21:17 |
|
|Lupin|
| little question please | 21:18 |
|
| I have done something bad with my git repo and now don't know how to make things return to a usable state.. | 21:18 |
|
| I have commited a change on a file | 21:18 |
|
| then modified the file | 21:18 |
|
| then wanted to amend the commit | 21:18 |
|
sgh
| How do I delete a remote branch without having the remote branch persisting in another users clone? | 21:19 |
|
|Lupin|
| and to do so I thought I had to do a git reset --soft HEAD^ | 21:19 |
|
| so now I think the file, he index and the commit tree are in three different states. | 21:19 |
|
| I'm wondering how to go out of this trap... | 21:19 |
| → abadr joined | 21:19 |
| → ferdy joined | 21:20 |
| ← jtdowney left | 21:20 |
| ← WALoeIII left | 21:20 |
| ← ph^_ left | 21:21 |
|
Ilari
| |Lupin|: First look at 'git reflog' and back off the reset (with another git reset --soft to suitable state). Then add the changes you want to amend and then commit --amend? | 21:21 |
|
|Lupin|
| Ilari: thanks ! let me try... | 21:22 |
| → WALoeIII joined | 21:22 |
|
|Lupin|
| Ilari: actually, what is taken into account by the -amend option ? the content of the index ? | 21:24 |
| → ia joined | 21:25 |
| ← drizzd left | 21:25 |
| → tazDg joined | 21:26 |
| → _jason553839 joined | 21:27 |
| ← xanonus left | 21:27 |
|
|Lupin|
| Ilari: I did a git reset --soft HEAD@{1} which worked I think, but git diff does not show any difference for the file I'm interested in, so I'm still confused... | 21:27 |
|
Ilari
| |Lupin|: It determines what to commit like ordinary commit. | 21:27 |
|
| |Lupin|: Maybe 'git diff --cached' does? | 21:28 |
| ← hvoigt left | 21:28 |
| ← ilteris left | 21:28 |
| ilteris_ → ilteris | 21:28 |
|
|Lupin|
| Ilari: yeah, it wants to remov ethe file I think, because I did a git rm --cached thefile | 21:29 |
|
| shall I re-add the file as a whole ? | 21:29 |
|
Ilari
| |Lupin|: Yeah, unless you want the file removed. | 21:29 |
| ← priidu left | 21:29 |
|
|Lupin|
| Ilari: no no, I really want it. | 21:31 |
|
| Ilari: I re-added it iand it works... almost | 21:31 |
|
| there are some changes to this file I don't want to commit as part of the ammend | 21:32 |
|
| amend | 21:32 |
|
| Ilari: so I guess I have to remove them and to re-add the file, so that just the amend part gets in the index... | 21:32 |
| ← eparis left | 21:32 |
| ← khmarbaise left | 21:33 |
|
|Lupin|
| Ilari: hmm there is still something I don't understand about comit -amend... it takes into account both the content of the index and the content of the last commit ? | 21:35 |
| → bx2_ joined | 21:36 |
| → smuf joined | 21:37 |
| → swombat joined | 21:38 |
|
swombat
| Hello... I need some git help... | 21:38 |
| → wagle joined | 21:38 |
|
swombat
| We've had a bit of a boo-boo... my colleague merged the master branch into the prod branch early, then undid the merge, then committed prod and deployed that... now i did a merge from prod to master, and it's overwritten my changes for the last week or so | 21:38 |
|
| i think i know which commits need to be reapplied | 21:39 |
|
| how do I reapply them to master? (or to prod) | 21:39 |
| ← rtl left | 21:39 |
|
kusma
| swombat: git cherry-pick? | 21:39 |
|
swombat
| kusma: that works in the same branch too? | 21:39 |
| ← patrikf left | 21:39 |
|
| swombat tries | 21:39 |
|
kusma
| not sure, did you give it a try? | 21:40 |
| → Aikawa_ joined | 21:40 |
|
swombat
| it works! | 21:40 |
|
kusma
| :) | 21:40 |
| ← icwiener left | 21:40 |
|
Ilari
| |Lupin|: Only (constructed) index is used in determining what to commit. | 21:40 |
|
|Lupin|
| Ilari: constructed index ? what's that ? | 21:40 |
|
Ilari
| |Lupin|: -a, -i, -o, filenames and all that. | 21:41 |
| → tbuehlmann joined | 21:42 |
| ← parasti left | 21:42 |
| → loops joined | 21:43 |
| ← Sigma left | 21:43 |
|
|Lupin|
| Ilari: ok | 21:45 |
|
| Ilari: btw, not sure it was you or someone else who suggested reading the git Parabble, Git for computer scientists and Git from the bottom up, but the parabbel was a ver nice suggestion, thanks | 21:45 |
| ← aidan left | 21:45 |
| → Zenopus_ joined | 21:46 |
|
|Lupin|
| Ilari: git for computer scientists has many pictures I couln't see, and git botom up was a pdf so I may ask the author if he could send me something easier to read for me, such as a LaTeX file... | 21:46 |
| ← aspotashev left | 21:47 |
| ← lhz left | 21:49 |
| ← bx2_ left | 21:50 |
| ← danzat left | 21:50 |
| → danzat joined | 21:50 |
|
Ilari
| |Lupin|: Running pdftotext on that PDF at least doesn't seem to produce complete garbage... | 21:50 |
| → btipling joined | 21:51 |
| ← kur1j left | 21:52 |
|
btipling
| say I have two branches working on different stuff, both are not the master branch, but both are derived from the master branch | 21:52 |
| → schambers joined | 21:52 |
|
btipling
| I have a new file in the first branch and I want it in the second branch | 21:52 |
|
|Lupin|
| Ilari: yeah it often produces something usable... the thing is I like seeing the structure, what is emphasized, etc. Well I'll see, perhaps start with a pdftotext... | 21:52 |
|
btipling
| how do I get that file without causing problems? | 21:52 |
| → bcardarella joined | 21:53 |
|
|Lupin|
| anyway... thanks to Ilari and all for so much help provied so far ! | 21:53 |
|
| btipling: if it's commited, cherry-pick | 21:53 |
| ← reidab left | 21:53 |
|
btipling
| hrm, ok I'll check that command out | 21:54 |
|
| thanks |Lupin| | 21:54 |
|
|Lupin|
| btipling: you are vry welcome ! | 21:54 |
|
| btipling: you are the first person I can help on #git :) | 21:54 |
|
btipling
| heh cool | 21:54 |
|
| I'm new to git | 21:54 |
| → agenteo joined | 21:54 |
| ← _jason553839 left | 21:54 |
|
|Lupin|
| btipling: so am I :) | 21:55 |
|
| good night eveybody ! | 21:55 |
|
| bye ! | 21:55 |
| ← |Lupin| left | 21:55 |
| ← Aikawa left | 21:56 |
| → Aikawa joined | 22:00 |
| ← Zenopus left | 22:00 |
| Zenopus_ → Zenopus | 22:00 |
| → zacharyc_ joined | 22:00 |
| ← zacharyc_ left | 22:01 |
| → hvoigt joined | 22:01 |
| ← hvoigt left | 22:01 |
| → zacharyc_ joined | 22:01 |
| ← psoo left | 22:02 |
| ← ixti left | 22:02 |
| ← scarabx left | 22:07 |
| → rtl joined | 22:07 |
| ← rolfb left | 22:10 |
| ← bcardarella left | 22:12 |
| → akitada joined | 22:13 |
|
btipling
| how do I check out another local branch if I don't want to commit changes I have in my current active branch | 22:16 |
| ← gunmuc left | 22:16 |
| ← Aikawa_ left | 22:17 |
|
btipling
| ah -f | 22:17 |
| → werdnativ joined | 22:19 |
| → EricInBNE joined | 22:19 |
| ← tbuehlmann left | 22:21 |
| → simcop2387 joined | 22:22 |
|
simcop2387
| is there a way to setup a default repository for git-push? | 22:22 |
|
| i'm sure ts in the manual i'm just having a brain fart right now | 22:22 |
|
werdnativ
| yes, for each branch. in .git/config | 22:23 |
|
| [branch "master"] | 22:23 |
|
| remote = origin | 22:23 |
|
| merge = refs/heads/master | 22:23 |
|
| where origin is your named remote. | 22:23 |
|
simcop2387
| ah thanks | 22:24 |
| ← Mezner left | 22:24 |
|
Mikachu
| btipling: that will also delete those changes | 22:24 |
| → reidab joined | 22:24 |
|
werdnativ
| on a related note, can a branch be linked to multiple remotes? | 22:24 |
|
btipling
| Mikachu: I didn't actually have any changes, I undid them all, and I didn't want to commit nothing, so it's ok | 22:24 |
|
Mikachu
| okay | 22:24 |
| ← sgh left | 22:24 |
|
werdnativ
| e.g. pull from one, push to another? | 22:25 |
| ← rudi_s_ left | 22:25 |
| → magcius joined | 22:27 |
| → JasonWoof joined | 22:27 |
| ← schmukkk left | 22:27 |
|
Ilari
| werdnativ: No. But one can override what to pull and where to push to. | 22:29 |
|
werdnativ
| right, just git push somewhere | 22:29 |
| ← Stravy left | 22:30 |
| ← simcop2387 left | 22:30 |
| → JEEBcz joined | 22:30 |
| → Azeroth-Work joined | 22:31 |
| ← slabbeh left | 22:33 |
| → fynn joined | 22:33 |
|
fynn
| Yo. What do you guys call the permanent branch in that holds the code you actually deploy in production? | 22:33 |
| ← onigiri left | 22:34 |
| ← Yuuhi left | 22:34 |
| kardan_ → kardan | 22:36 |
| → aresnick joined | 22:37 |
| ← pantsman left | 22:39 |
| ← Bass10 left | 22:40 |
|
chuck
| fynn: master ;-) | 22:40 |
| ← JEEB left | 22:43 |
| → eean joined | 22:46 |
| JEEBcz → JEEB | 22:49 |
| ← akitada left | 22:50 |
| ← thiago_home left | 22:50 |
| → jrmuizel joined | 22:54 |
| ← mjf left | 22:54 |
| → Bass10 joined | 22:56 |
| → oneforall joined | 23:01 |
| → akitada joined | 23:02 |
|
oneforall
| http://pastebin.ca/1628160 any idea why I get this ? | 23:02 |
| ← abadr left | 23:04 |
|
rtyler
| because you have a crappy xmltoman install? | 23:05 |
|
| *or* | 23:05 |
|
| you're running this somewhere where you cannot allocate as much memory as xmltoman needs and they're not handling E_NOMEM properly? | 23:06 |
| ← jrmuizel left | 23:06 |
|
oneforall
| seems to be something peopel are getting with glibc 2.10.1 | 23:06 |
|
| its in my chroot. compiled fine many times before (have 8GB and less open too than I did many times before) but the diff is glibc2.10.1, gcc4.4.1 .. hmm But I'll check and see the last time I compiled xmltoman. | 23:08 |
| ← hachi left | 23:09 |
| ← luke-jr left | 23:12 |
| → luke-jr joined | 23:13 |
| → jrmuizel joined | 23:14 |
| ← jrmuizel left | 23:17 |
| → pgregory joined | 23:17 |
| ← pas left | 23:17 |
|
pgregory
| hi | 23:17 |
|
Ilari
| ... | 23:17 |
|
pgregory
| can anyone tell me why over an smbfs share I'm getting the following error when I push? | 23:17 |
|
| fatal: Unable to create temporary file: Permission denied | 23:18 |
| → Haarg joined | 23:18 |
| → pas joined | 23:18 |
|
pgregory
| I can write to the share, and create directories, and everything, but git fails with that. | 23:18 |
|
Ilari
| pgregory: Sounds like permission error (remote side). | 23:18 |
|
pgregory
| Ilari: but I can write to the share, and even write to the folder that contains the git repository. | 23:18 |
|
Ilari
| pgregory: Is some kind of syscall tracer (strace, etc) available? | 23:19 |
|
pgregory
| I can create files, delete them, create directories etc. | 23:19 |
| ← __iron left | 23:19 |
|
pgregory
| Ilari: I have strace, but I have no clue how to use it. | 23:19 |
|
Ilari
| pgregory: 'strace -f <command to trace>'. It outputs trace to stderr... | 23:20 |
| → abadr joined | 23:21 |
|
pgregory
| the last message before the error is... | 23:21 |
|
| [pid 10196] open("./objects/pack/tmp_pack_0U8wO5", O_RDWR|O_CREAT|O_EXCL|O_LARGEFILE, 0600) = -1 EACCES (Permission denied) | 23:21 |
| → krynnotaur joined | 23:22 |
|
pgregory
| aha, I don't have permission to access the .git folder for some reason. | 23:22 |
| ← mithro left | 23:23 |
|
pgregory
| bit it shows up as drwxrwxrwx 1 pgregory root | 23:23 |
|
| same as all other files | 23:23 |
| → sergiodj_ joined | 23:24 |
|
pgregory
| I mean folders | 23:24 |
| ← justin-george left | 23:25 |
|
pgregory
| this is weird, all I want to do is push and go to bed :( | 23:25 |
|
Ilari
| pgregory: Share permissions on server? | 23:27 |
|
pgregory
| possibly, however, I haven't actually 'done' anything to forcibly stop access to .git | 23:27 |
|
| so unless git itself does that when it creates it, I can't see how. | 23:27 |
|
Ilari
| pgregory: 'whoami' in shell where push fails prints what? 'pgregory'? | 23:29 |
|
pgregory
| yes | 23:29 |
|
Ilari
| pgregory: ... So no rootsquash or so involved... | 23:30 |
| ← abadr left | 23:30 |
|
pgregory
| nope | 23:30 |
| → jrmuizel joined | 23:30 |
|
pgregory
| I'll have to send a patch now, it's beaten me | 23:30 |
|
fynn
| OK, again I forgot: how do I create a local foo branch, that would also be tracking a remote branch? | 23:31 |
|
| so when I "git push", the remote would have a foo branch as well, with everything my foo branch has. | 23:31 |
| → hachi_ joined | 23:32 |
|
pgregory
| cheers | 23:32 |
| ← pgregory left | 23:32 |
| ← d0k left | 23:32 |
|
Ilari
| fynn: 'git push <remote> foo' (except that doesn't set up the info for pull). | 23:33 |
|
fynn
| Ilari: yeah, but don't I need to specify anything at foo's creation time? | 23:33 |
| hachi_ → hachi | 23:33 |
| ← sergiodj_ left | 23:35 |
|
Ilari
| fynn: Just specify the correct starting point (if current commit isn't correct). | 23:36 |
| ← Haarg left | 23:36 |
| ← Sonderblade left | 23:36 |
| dwmw2_gone → dwmw2_NRT | 23:37 |
| ← akitada left | 23:39 |
|
fynn
| Ilari: OK, I did: "git checkout -b foo; git push origin foo" | 23:39 |
|
| that worked, but foo isn't tracking origin/foo | 23:39 |
|
Ilari
| fynn: Yeah. Needs 'git config branch.foo.remote origin', 'git config branch.foo.merge refs/heads/foo'. | 23:41 |
|
fynn
| Ilari: hm, I thought there was some paramter in the branching command to make foo automatically track origin/foo? | 23:42 |
| → plediii joined | 23:42 |
| ← reidab left | 23:43 |
| → owen1 joined | 23:44 |
|
Ilari
| fynn: There is, but the branch to track must exist... | 23:45 |
|
fynn
| Ilari: *nod*, that's what confused me, thanks :) | 23:46 |
| ← schierbeck left | 23:46 |
| → mithro joined | 23:46 |
|
sitaram
| one trick I have used in the past (easier to remember) is after that "push origin/foo", I'd "git branch -D foo; git checkout -t origin/foo" | 23:47 |
| → defectiv joined | 23:47 |
|
fynn
| oooh that's very clever | 23:48 |
|
sitaram
| well I dont know about clever but it gets the job done with stuff my somewhat feebler mind can remember :) | 23:49 |
| ← relix left | 23:49 |
|
owen1
| i try to add new repo to gitosis. git remote add origin git@localhost:cool_project.git and get: fatal: remote origin already exists. what's the problem? | 23:50 |
| → _ringlej joined | 23:50 |
| ← ringlej left | 23:51 |
|
Ilari
| owen1: The name 'origin' is already in use. Pick another name for remote. | 23:51 |
| ← ia left | 23:52 |
|
owen1
| Ilari: what does it mean 'name for remote' is this the name i'll use to identify this specific repo? | 23:52 |
| ← sergiodj left | 23:52 |
|
Ilari
| owen1: Short name to designate the repo (that also appears in names of remote tracking branches associated with that repo). | 23:53 |
|
owen1
| Ilari: ok, i'll use the project's name, i guess. | 23:53 |
|
sitaram
| owen1: one normally uses a name referring to the *server* when naming an origin; the fact that many servers host onnly one repo of interest to us notwithstanding :) | 23:55 |
|
| sya tomorrow you want to get a second project from there, you'd end up calling it "git clone project-A:project-B.git" | 23:56 |
|
| say* | 23:56 |
| ← defectiv left | 23:57 |
|
owen1
| sitaram: so origin should be an identifier for my server? and will i be able to use it on more projects? | 23:57 |
| → ia joined | 23:57 |
|
sitaram
| if the server has a related project you want to fetch a branch or something from, sure... | 23:58 |
|
| nothing stops you from naming it whatever you want, of course -- I was just saying it might make more sense to name ifafter the server | 23:58 |
|
| it | 23:59 |
|
| say git.kernel.org has multiple linux repos (various people's linux trees) and you're tracking linus's tree from it | 23:59 |
| → aresnick_ joined | 23:59 |