| 2008-12-26 |
| ← dasil003 left | 00:00 |
|
gitster
| "git diff $commit...origin -- manifest" would show lines that they did not change prefixed with " ", lines they changed prefixed with "-" and "+"; - are what the file had before their change, + are what the file contains after their change. | 00:00 |
| → akitada joined | 00:00 |
| ← akitada left | 00:02 |
| → akitada_ joined | 00:03 |
| → oudeis joined | 00:03 |
| → Jacolyte joined | 00:04 |
| ← akitada_ left | 00:06 |
| ← Ademan left | 00:07 |
| → aoper joined | 00:09 |
| ← charon left | 00:09 |
| ← aoper left | 00:13 |
| → aoper joined | 00:14 |
| ← TanEk left | 00:16 |
| ← zerok_ left | 00:16 |
| → akitada_ joined | 00:20 |
| → dreiss joined | 00:21 |
| ← akitada_ left | 00:22 |
| ← kumbayo left | 00:29 |
| ← _ajonat left | 00:33 |
| → johnw joined | 00:35 |
| ← jmatthews left | 00:37 |
| ← gitster left | 00:37 |
| ← johnw left | 00:38 |
| ← foutrelis left | 00:38 |
| ← Tr3B left | 00:41 |
| → jmatthews joined | 00:41 |
| ← dwmw2_gone left | 00:43 |
| ← LotR left | 00:45 |
| → gitster joined | 00:50 |
| → pie joined | 00:52 |
| ← d0k left | 00:52 |
| → __david joined | 00:56 |
|
__david
| How do I combine several commits into a single commit? | 00:56 |
|
gitster
| "merge --squash" or "rebase -i" | 00:56 |
|
__david
| can you be a bit more specific? | 00:56 |
|
| Like, if I want to combine the past N commits? | 00:57 |
|
| And how does it deal with their commit messages? | 00:57 |
|
| Does it append them, or discard them and let me specify a new one? | 00:57 |
| ← scrambledegg left | 00:59 |
| → uva joined | 01:03 |
| ← CodeOfficer left | 01:10 |
| ← greyface left | 01:11 |
| ← chris2 left | 01:14 |
| ← joydivider left | 01:17 |
| ← name left | 01:19 |
| → Strogg joined | 01:23 |
| kbiddlecomb → kbiddlecomb_ | 01:29 |
|
azuk
| I wonder what's the logic with the Branch: field gitk displays in the diff, it is empty in some branch tip commits but not in all | 01:30 |
| → quoin joined | 01:32 |
| → stouset joined | 01:32 |
| → tanek_ joined | 01:36 |
| ← priidu left | 01:36 |
| ← markelikalderon left | 01:36 |
| ← stouset left | 01:41 |
| → markelikalderon joined | 01:41 |
| → cartucho joined | 01:42 |
|
Ilari
| azuk: Are they even local branches? Not remote branches or even tags? | 01:43 |
|
azuk
| yes | 01:43 |
| ← pygi left | 01:50 |
| ← bobesponja left | 01:51 |
|
azuk
| while I'm trying to come up with a script to create such a repository, here's another case. does this look correct to you: <http://www.iki.fi/azure/tmp/gitk-test1.png> (test script to recreate that repository: <http://www.iki.fi/azure/tmp/gitk-test-script>) | 01:52 |
|
Gitbot
| azuk: I'm sorry, there's no such object: http://www.iki.fi/azure/tmp/gitk-test1.png. | 01:52 |
| → bobesponja joined | 01:52 |
|
j_engelh
| azuk: repost with --date-order | 01:52 |
|
| simply commit the entires from bottom to top and you recreated it | 01:53 |
| ← quoin left | 01:53 |
|
j_engelh
| azuk: you're good when you can recreate something like http://jengelh.medozas.de/images/git-forest.png | 01:55 |
| ← uva left | 01:55 |
|
azuk
| ok, here's with --date-order, not that understand what difference and why that should make: <http://www.iki.fi/azure/tmp/gitk-test1-date-order.png> | 01:56 |
|
Gitbot
| azuk: I'm sorry, there's no such object: http://www.iki.fi/azure/tmp/gitk-test1-date-order.png. | 01:56 |
|
azuk
| ...and the point is that I'd expect it to display both debug2 and branch as branches | 01:57 |
| → uva joined | 02:00 |
|
azuk
| should I adjust my expectations? :) | 02:01 |
|
j_engelh
| and? | 02:02 |
|
azuk
| and what? | 02:02 |
|
j_engelh
| well think about it | 02:03 |
|
azuk
| I have been thinking about it and it doesn't make sense to me, as far as I can see that commit is reachable from both debug2 and branch and so should be part of both branches, just like its parent | 02:05 |
| ← aoper left | 02:06 |
|
j_engelh
| you have exactly 6 branches in there, of which 3 are accessible my a green name | 02:06 |
|
| s/my/by/ | 02:06 |
| → moconnor joined | 02:07 |
| → aoper joined | 02:07 |
| ← markelikalderon left | 02:09 |
|
azuk
| I can agree with that | 02:09 |
| ← chuck left | 02:11 |
|
azuk
| I don't see how that answers my question, though | 02:12 |
| → k776 joined | 02:13 |
| ← kbiddlecomb_ left | 02:15 |
| → markelikalderon joined | 02:16 |
| ← k776 left | 02:18 |
| ← aoper left | 02:19 |
|
j_engelh
| I really don't know where the problem is. | 02:22 |
|
| If you want to recreate the history tree like that, just commit in the right order. | 02:22 |
|
azuk
| I know how to create a history like that, I just want to know why, in that screenshot, gitk displays "Branch: debug2" instead of "Branch: debug2, branch" | 02:24 |
| → litage joined | 02:24 |
| ← mbroeker left | 02:28 |
| → QaDeS_ joined | 02:28 |
|
j_engelh
| azuk: it shows both branches for me | 02:29 |
|
| azuk: http://tinyurl.com/82wyd8 | 02:31 |
|
azuk
| ok, I suppose I should make a bug report then | 02:33 |
| ← oudeis left | 02:33 |
|
j_engelh
| no, why? there is no bug. | 02:33 |
|
| at least not in the version I have, whcih is the most recent. | 02:33 |
|
azuk
| hm, mine should be the most recent as well, let me verify | 02:34 |
| ← Yuuhi left | 02:34 |
|
azuk
| ok, I'm missing a couple of commits, but they all look completely unrelated. but let me build the latest version just in case | 02:36 |
|
j_engelh
| and be sure to run gitk --all | 02:37 |
|
azuk
| yep, that's what I did | 02:37 |
|
j_engelh
| winner? wtf. debian is falling apart due to their politics, and ubuntu does not have the technical know-how to get anything goin. | 02:37 |
| → j_engelh joined | 02:38 |
|
j_engelh
| screw this irc client to hell and back | 02:38 |
|
offby1
| er? | 02:39 |
|
j_engelh
| or maybe my keyboard is giving up on me | 02:39 |
|
| (when trying to use ^X to switch channels) | 02:40 |
|
offby1
| dried eggnog stuck between the contacts, most likely | 02:40 |
| → faithfulgeek joined | 02:40 |
|
j_engelh
| i don't drink that crap | 02:40 |
| ← faithfulgeek left | 02:44 |
| ← QaDeS left | 02:45 |
| → metajack joined | 02:47 |
| ← bobesponja left | 02:47 |
| ← bryanl left | 02:49 |
| → julian81 joined | 02:51 |
| ← drewr left | 02:53 |
| → bobesponja joined | 02:58 |
| ← bobesponja left | 03:05 |
| ← julian81_ left | 03:05 |
| → dasil003 joined | 03:09 |
| → _slacker_ joined | 03:11 |
| ← thiago left | 03:15 |
| ← cartucho left | 03:16 |
| → ari-_-e joined | 03:17 |
|
ari-_-e
| hey guys, what command would I use if I wanted get the tree that a tree-ish resolves to? | 03:18 |
|
j_engelh
| well | 03:18 |
|
| a tree-ish already is a tree | 03:18 |
|
| you mean display contents? | 03:18 |
|
deskin
| ari-_-e: git rev-parse $treeish^{tree} | 03:18 |
|
ari-_-e
| erm no, commits and tags are also tree-ishes | 03:19 |
|
| deskin: thanks | 03:19 |
|
j_engelh
| oh right | 03:19 |
| → mbroeker joined | 03:20 |
| → aoper joined | 03:22 |
|
ari-_-e
| another question: is it possible to request a single object and all additional objects that would be required for "git fsck" to report no problems from remote? | 03:26 |
|
| rather than fetching a ref? | 03:26 |
|
j_engelh
| that would be all reachable committish,treeishs and blobishs | 03:27 |
|
ari-_-e
| hm? | 03:27 |
|
j_engelh
| git rev-list $object | 03:28 |
|
ari-_-e
| well it'd be weird for commits because it would fetch the entire history, but for a tree (which is what I want) you'd just have to get maybe some more trees and blobs | 03:28 |
|
j_engelh
| what's weird with not fetching all commits.. | 03:28 |
|
Tv
| ari-_-e: IIRC git-daemon only serves things from refs so it won't accidentally serve "deleted" or "just sharing storage" objects you're not supposed to see | 03:28 |
|
j_engelh
| a missing object is not necessarily a bad thing | 03:28 |
|
ari-_-e
| hmm, damn | 03:29 |
|
j_engelh
| you just can't play with it if it's not there | 03:29 |
|
Tv
| ari-_-e: asking it for a blob or tree would force it to walk the DAG to see if that's allowed; as that's costly, it chooses not to allow that | 03:29 |
|
ari-_-e
| j_engelh: hmm, well if something points to it it's bad :-/ | 03:29 |
|
j_engelh
| ari-_-e: not necessarily | 03:29 |
|
Tv
| ari-_-e: you can grab a full clone and feed those in from that, though | 03:29 |
|
j_engelh
| there is this thing called shallow clones | 03:29 |
|
ari-_-e
| oh, right | 03:29 |
|
j_engelh
| I could imagine - but it does not seem implemented of course - that ther emight also be shallow trees | 03:29 |
|
ari-_-e
| j_engelh: so it doesn't just do shallow clones by having the last commit in the chain not have a parent? | 03:30 |
|
| I guess it would have to change the hash... | 03:30 |
|
j_engelh
| hm? | 03:30 |
|
| forget what I mumbled; trees should be complete or you can't easily verify them | 03:30 |
|
Tv
| ari-_-e: well yes but not by mutating anything, by writing down "i don't have the parents of X" | 03:30 |
|
ari-_-e
| Tv: ok | 03:31 |
|
| Tv: what does DAG stand for? | 03:31 |
|
Ilari
| ari-_-e: Directed Acyclic Graph. | 03:32 |
|
j_engelh
| Dag is a nordic name | 03:32 |
|
| :p | 03:32 |
|
ari-_-e
| ok, so that's just the commit chain complete with branches and all that | 03:32 |
|
| right? | 03:32 |
|
j_engelh
| -ETOOMANYQUESTIONSATONCE | 03:32 |
|
ari-_-e
| :P | 03:32 |
| ← nanodeath left | 03:33 |
|
Tv
| ari-_-e: http://eagain.net/articles/git-for-computer-scientists/ | 03:33 |
|
Ilari
| ari-_-e: Branches are just pointers to nodes of that DAG. And the DAG can be highly nonlinear. | 03:34 |
|
ari-_-e
| hey, that looks cool | 03:34 |
|
| Tv: thanks for the link | 03:34 |
|
j_engelh
| ze internet is on ze fritz again | 03:37 |
| ← markelikalderon left | 03:37 |
| ← flaguy left | 03:38 |
| ← da1l6 left | 03:39 |
| → da1l6 joined | 03:40 |
| ← dasil003 left | 03:42 |
| → jeckel joined | 03:46 |
| ← jbellis left | 03:48 |
| ← mbroeker left | 03:49 |
| ← jmatthews left | 03:49 |
| ← QaDeS_ left | 03:49 |
| → tanek__ joined | 03:50 |
| ← scientes left | 03:52 |
| ← jeckel left | 03:52 |
| → jeckel joined | 03:52 |
| → jmatthews joined | 03:55 |
| ← Shilin2 left | 03:59 |
| ← elmex left | 04:00 |
| ← jeckel left | 04:01 |
| → jeckel joined | 04:01 |
| → elmex joined | 04:03 |
| → muthu_ joined | 04:03 |
| ← aoper left | 04:04 |
| → mithro joined | 04:05 |
| → aoper joined | 04:05 |
| → jeckel_ joined | 04:06 |
| ← jeckel left | 04:06 |
| ← jeckel_ left | 04:06 |
| ← tanek_ left | 04:07 |
| ← kukks left | 04:10 |
| → kevwil joined | 04:11 |
| ← parasti left | 04:11 |
| → j416 joined | 04:11 |
| ← kevwil left | 04:12 |
| → cartucho joined | 04:17 |
| → bobesponja joined | 04:34 |
| ← aziz left | 04:34 |
| ← mithro left | 04:34 |
| → psankar joined | 04:37 |
| → bieneff joined | 04:39 |
| ← bieneff left | 04:44 |
| ← ari-_-e left | 04:44 |
| ← GyrosGei1r left | 04:47 |
| → GyrosGeier joined | 04:47 |
| ← schlort left | 04:52 |
| ← moconnor left | 05:01 |
| → rubydiamond joined | 05:07 |
| → sammcd joined | 05:12 |
| → xinming joined | 05:16 |
| → tjafk1 joined | 05:27 |
| ← tjafk left | 05:28 |
| → jackowayed joined | 05:30 |
| → gottesmm joined | 05:39 |
| → qrush joined | 05:41 |
| ← ijcd left | 05:41 |
| ← j416 left | 05:47 |
| ← gottesmm left | 05:48 |
| → lholden joined | 05:51 |
| ← branstrom left | 05:52 |
| → jstad joined | 05:55 |
| → j416 joined | 05:56 |
| → jackdempsey joined | 06:01 |
| → carllerche joined | 06:02 |
| ← jackdempsey left | 06:06 |
| → lresende joined | 06:07 |
| ← lresende left | 06:10 |
| → etienne9 joined | 06:13 |
| ← ankit9 left | 06:13 |
| ← sammcd left | 06:15 |
| → cedricv joined | 06:15 |
| ← etienne9 left | 06:16 |
| ← lholden left | 06:18 |
| ← jackowayed left | 06:19 |
| ← rubydiamond left | 06:19 |
| → rubydiamond joined | 06:20 |
| ← rubydiamond left | 06:20 |
| → lresende joined | 06:24 |
| → quoin joined | 06:25 |
| → oudeis joined | 06:26 |
| ← cartucho left | 06:28 |
| → Shilin2 joined | 06:37 |
|
offby1
| alors | 06:38 |
| → dasil003 joined | 06:46 |
| → PloenK joined | 06:56 |
| → jackdempsey joined | 06:59 |
| → __doc__ joined | 07:04 |
| ← dasil003 left | 07:10 |
| ← doener left | 07:11 |
| ← univate left | 07:11 |
| → doener joined | 07:11 |
| → joydivider joined | 07:15 |
| ← bobesponja left | 07:29 |
| ← carllerche left | 07:33 |
| → pyalot joined | 07:35 |
| → priidu joined | 07:39 |
| ← __doc__ left | 07:40 |
| ← jstad left | 07:41 |
| ← jackdempsey left | 07:54 |
| ← dreiss left | 07:56 |
| → temoto joined | 07:56 |
|
temoto
| Hello. We're 3 devs pushing to one repo and pulling from that one repo. Like SVN. It was once that pull created a merge commit. I reset that back and did rebase, resulting in conflict and again i did a merge commit. Does it mean we can generally use pull to synchronize with center-repo or better use rebase? | 07:59 |
|
| i mean if merge commit was like unevitable | 08:00 |
|
godlygeek
| as far as i know, git pull --rebase is a reasonable thing to do in that situation, to try to rebase upon the stuff that's pulled down, rather than merge it into your branch. | 08:01 |
| ← litage left | 08:02 |
|
temoto
| godlygeek: ya and there is branch.name.rebase = true config to do that for each pull. | 08:02 |
| → davik joined | 08:03 |
|
godlygeek
| yeah. | 08:03 |
|
temoto
| I'm trying to get the feeling which one is appropriate in which situation. | 08:03 |
|
| Like i'm sure where to use tuple, where to use list in python. | 08:04 |
|
godlygeek
| yeah. i have a general feeling for when to use each, but since i'm not exactly an expert on the matter, i won't muddy the waters with my limited understanding... | 08:05 |
| ← julian81 left | 08:05 |
| → ankit9 joined | 08:05 |
| ← ankit9 left | 08:06 |
| → ankit9 joined | 08:06 |
|
temoto
| godlygeek: thank you :) | 08:07 |
| ← ankit9 left | 08:10 |
| → ankit9 joined | 08:11 |
| ← aoper left | 08:19 |
| ← pyalot left | 08:20 |
| → __doc__ joined | 08:25 |
| → aoper joined | 08:27 |
| → muthu joined | 08:28 |
| ← __doc__ left | 08:38 |
| ← xinming left | 08:41 |
| ← oudeis left | 08:42 |
| ← muthu_ left | 08:43 |
| → __doc__ joined | 08:47 |
| → Ademan joined | 09:04 |
| ← Jacolyte left | 09:05 |
| ← ankit9 left | 09:06 |
| → ankit9 joined | 09:06 |
| ← cao left | 09:07 |
| ← temoto left | 09:07 |
| ← PloenK left | 09:08 |
| → scientes joined | 09:16 |
| → oudeis joined | 09:27 |
| → daa joined | 09:34 |
| ← ia left | 09:40 |
| → ia joined | 09:41 |
| ← unreal left | 09:43 |
| ← daa left | 09:44 |
| → wwwald joined | 09:44 |
| → unreal joined | 09:49 |
| ← ankit9 left | 09:53 |
| → ankit9 joined | 09:54 |
| → Tr3B joined | 09:58 |
| ← joydivider left | 10:04 |
| → chris2_ joined | 10:14 |
| ← wwwald left | 10:16 |
| chris2_ → chris2 | 10:16 |
| → Voker57 joined | 10:16 |
| → Flathead joined | 10:17 |
| → mbroeker joined | 10:18 |
| ← __doc__ left | 10:22 |
| chris2 → chris2_ | 10:27 |
| chris2_ → chris2__ | 10:27 |
| chris2__ → chris2 | 10:28 |
| → joydivider joined | 10:31 |
| → schlort joined | 10:31 |
| ← mbroeker left | 10:36 |
| → mbroeker joined | 10:36 |
| → greyface joined | 10:37 |
| ← dermoth left | 10:43 |
| ← unreal left | 10:46 |
| → dermoth joined | 10:46 |
| → drizzd joined | 10:47 |
| ← chris2 left | 11:02 |
| ← ndim left | 11:08 |
| → pygi joined | 11:09 |
| ← joydivider left | 11:10 |
| ← Shilin2 left | 11:10 |
| → not-xjjk joined | 11:11 |
| ← pygi left | 11:14 |
| → ph^ joined | 11:14 |
| → Shilin2 joined | 11:16 |
| → rtomayko_ joined | 11:17 |
| ← rtomayko left | 11:17 |
| → carllerche joined | 11:21 |
| → k776 joined | 11:22 |
| ← xjjk left | 11:23 |
| → QaDeS_ joined | 11:23 |
| ← k776 left | 11:25 |
| ← muthu left | 11:26 |
| → muthu_ joined | 11:30 |
| → masterzen joined | 11:31 |
| ← carllerche left | 11:34 |
| → bentob0x joined | 11:34 |
| ← Voker57 left | 11:35 |
| → Voker57 joined | 11:36 |
|
dmq
| i dont "get" git describe | 11:39 |
|
| it warns about stuff that you cant control. | 11:39 |
|
| which doesnt make sense to me. | 11:39 |
| ← j416 left | 11:42 |
| ← schlort left | 11:42 |
| ← psankar left | 11:43 |
| ← davik left | 11:43 |
|
Ilari
| dmq: What warning? | 11:48 |
|
dmq
| the problem is with git describe --all | 11:49 |
|
| just mailed the list about it. | 11:50 |
|
| but let me make a paste | 11:51 |
|
Ilari
| dmq: That tag foo is really tags/foo message? | 11:51 |
|
dmq
| http://pasta.test-smoke.org/122 | 11:51 |
|
| yes exactly. | 11:52 |
|
| theres no way to turn it off | 11:52 |
|
| or to force git-describe to just output "tags/blah blah" instead | 11:52 |
|
| and i cant not use --all as if i dont use it some of my commits dont resolve. | 11:52 |
|
Ilari
| Apparently trying to describe anything that it uses tags as base gives that warning. It even pops up in git.git clone I have. And AFAICT those tags it warns about are correctly named. | 11:54 |
|
dmq
| yeah | 11:55 |
|
| the warning is one of those silly warnings that we all stick in code without thinking it through. | 11:55 |
| → thiago joined | 11:55 |
| → [TuxCM] joined | 11:55 |
|
dmq
| never warn about something you cant control, and if you do warn include explanation for how to turn off the warning. | 11:55 |
|
Ilari
| dmq: It seems that conditions to display it contain logic error. It seems to pop up in cases where it shouldn't pop up. | 11:57 |
|
dmq
| that would explain why its so annoying :-) | 11:57 |
|
| and yes, it almost seems random. | 11:57 |
|
| see, ive been running git-describe on about 1000 commits from the perl history. | 11:57 |
|
| everywhere that the version of perl was changed. | 11:58 |
|
| so that i can ensure we have all the right version tags. | 11:58 |
|
| and part of it is git-describing each. | 11:58 |
|
| and i get that error about 30% of the time or so... | 11:58 |
| → peritus_ joined | 11:58 |
| → kumbayo joined | 11:58 |
|
dmq
| that warning | 11:58 |
|
| and its really irritating | 11:58 |
|
| as a) id like all the git-describes to use the same qualified format, and b) i cant turn it off. | 11:59 |
|
Ilari
| dmq: I'd say there's not much need to turn that off if it would be fixed to only warn when it should... | 12:00 |
|
dmq
| well, id like to turn it off by saying "always use the qualified form" and then it should have nothing to warn about right? | 12:01 |
|
Sonderblade
| How do you view the diff of a specific commit? | 12:02 |
|
andreaja
| git show <hash> | 12:02 |
|
Sonderblade
| thanks | 12:03 |
|
dmq
| or if you feel like typing more git log -p -1 SHA! | 12:03 |
|
Sonderblade
| it seems git svn rebase has made it so that some commits have become duplicated, how can that happen? | 12:04 |
|
dmq
| ilari, id be really interested to see how such a change/new switch would be handled. ive looked at patching git a couple of times, but i didnt get a lot of traction. | 12:04 |
|
| it would be nice to see an example of adding a well defined and small feature. | 12:05 |
| → temoto joined | 12:09 |
|
Ilari
| dmq: IMO, its more like bugfix. If it's indeed logic error, then fixing that is a bugfix. | 12:12 |
| ← kumbayo left | 12:13 |
| → d0k joined | 12:13 |
|
temoto
| Hello. We're moved from SVN, 3 devs pushing to one centralized repo. Now which one of pull&rebase to prefer and when? | 12:14 |
|
dmq
| Ilari: sure, but adding aswitch to force the qualified format always would be a teeny feature? | 12:15 |
|
thiago
| temoto: to do it "the git way", you want rebase | 12:15 |
|
| git checkout master; git pull; git checkout mybranch; git rebase master; git checkout master; git merge mybranch; git push | 12:15 |
|
| or, more simply: git checkout mybranch; git pull --rebase; git push | 12:16 |
|
temoto
| hmm | 12:17 |
|
| do i have to have separate branch? | 12:17 |
|
| we're working on master | 12:18 |
|
Ilari
| dmq: Hmm... It seems that my first guess at what causes that warning was right... | 12:18 |
|
temoto
| and we're pushing our master to server master | 12:18 |
|
bremner
| temoto: you can also do this with git. Don't be afraid of branches in git though | 12:19 |
| → tomsw joined | 12:19 |
|
temoto
| bremner: i'm not, i'm using few branches for my own projects. | 12:19 |
|
tomsw
| happy Boxing Day everyone | 12:20 |
|
| bremner boxes tomsw's ears :-) | 12:20 |
|
dmq
| ilari: bug? | 12:20 |
|
temoto
| It's just a question of is there any good reason to have mybranch and keep rebasing it to master? | 12:20 |
|
tomsw
| Is it possible to move the last n commits from one branch to another? | 12:20 |
|
dmq
| keeps the commit history clean. | 12:20 |
|
tomsw
| I did some work on the wrong branch | 12:21 |
| ← [TuxCM] left | 12:21 |
|
temoto
| dmq: i see. That way i'll have to make "merge commits" that glue several commits of mybranch into one on master branch? | 12:22 |
|
bremner
| temoto: not really. Also "merge commits" are something else. You probably mean squashed commits in git lingo | 12:24 |
|
Ilari
| temoto: If you keep mybranch and keep it rebased to master, don't push it anywhere without warnings about it being rebased. | 12:24 |
|
dmq
| tomsw: my comment was more to temoto. | 12:25 |
| ← ankit9 left | 12:25 |
|
dmq
| temoto: im not really sure if i follow you. the reason some people like rebase is because it keeps the commit history clean on master. | 12:26 |
| → ankit9 joined | 12:26 |
|
dmq
| as in "clean of merges". | 12:27 |
|
| so it looks like a straight line in things like gitk. | 12:27 |
|
Ilari
| And rebasing together with push and pull can create nasty surprises if one isn't careful... | 12:27 |
|
dmq
| yes | 12:27 |
|
thiago
| temoto: you asked what was the recommended way | 12:28 |
|
temoto
| ya | 12:28 |
|
thiago
| the recommended way is not to work on master, but to work on topic branches | 12:28 |
|
temoto
| topic? | 12:28 |
|
thiago
| check out, rebase, work | 12:28 |
|
| when you're done, you merge it into master, then push | 12:28 |
|
dmq
| yeah | 12:29 |
|
| but it doesnt always quite work out that way. | 12:29 |
|
temoto
| I'm sorry what is "topic branch"? | 12:29 |
|
dmq
| you create a temporary named branch that is for working on a given "topic" | 12:29 |
|
Ilari
| That leaves out the step for deleting that branch (comes after merging it to master)... And to avoid nonliearities, one should do one final rebase before merge (to ensure merge will be trivial). | 12:29 |
|
temoto
| omg | 12:30 |
|
dmq
| you do your changes there, and then rebase it into master and throw away the temporary branch when you are done | 12:30 |
|
| tomsw figures it out | 12:30 |
|
Ilari
| temoto: For example branch 'bugfix-225' (for fixing bug #225 in bugtracker). Or branch 'ECDSA' for implementing ECDSA (a digital signature algorithm)... | 12:30 |
| ← ankit9 left | 12:31 |
|
dmq
| at least thats the idea. | 12:31 |
|
| imo it doesnt work out that way in practice. | 12:31 |
| → ankit9 joined | 12:31 |
|
temoto
| to rebase master, i should do git checkout master ; git rebase bugfix-225 ? | 12:31 |
| ← muthu_ left | 12:31 |
|
Sonderblade
| i'm trying to rebase a branch, i get a conflict, i solve it by selecting the second version, then the changeset becomes empty and rebase can't continue | 12:31 |
|
| git is broken | 12:31 |
|
dmq
| not with a large number of committers with varying skills working out the same repo anyway. | 12:31 |
|
thiago
| in practice, my work consists of making small changes in master | 12:32 |
|
| if I don't finish it with one commit or in a couple of hours, I make a branch out of it for later | 12:32 |
|
Ilari
| temoto: More like 'git checkout bugfix-225', 'git rebase master'. | 12:32 |
|
bremner
| dmq: "working out of the same repo" is not "the git way" | 12:32 |
|
thiago
| since every commit, before being pushed, needs to be reviewed by a peer, sometimes I need to create a branch in order to keep commits that aren't reviewed yet | 12:32 |
|
Ilari
| Sonderblade: 'git rebase --skip'? | 12:32 |
|
dmq
| bremner: i mean sharing a single master repo. | 12:33 |
|
temoto
| Ilari: i meant before pushing | 12:33 |
|
dmq
| and yes i know. | 12:33 |
|
thiago
| bremner: actually, it is. Just because the kernel uses pulling doesn't mean everyone has to. | 12:33 |
|
Sonderblade
| Ilari: that worked, how strange | 12:33 |
|
dmq
| bremner: IOW, a bare shared repo as a master repository. | 12:33 |
|
bremner
| thiago, dmq: I thought dmq meant one local repo. my misunderstanding | 12:34 |
|
dmq
| to use the pull model you need release managers afaict. | 12:34 |
|
Ilari
| temoto: The command you gave would rebase master on top of bugfix-225 (yielding likely some very wrong results). | 12:34 |
|
bremner
| dmq: so what breaks about topic branches in this setting? | 12:34 |
|
Ilari
| temoto: The usual syntax of rebase is 'git rebase <branch on which current branch is based on>'. | 12:35 |
|
dmq
| bremner: its not that anything breaks, its that it requires a reasonably clueful set of devs. | 12:36 |
|
Ilari
| temoto: It would be possible to configure 'git pull' to perform the correct rebase when on those branches... | 12:36 |
|
bremner
| dmq: maybe you need the "idiot branch", which is merged back in by someone clueful | 12:36 |
|
dmq
| if you have a mixed team, maybe web designers too, businessy people, etc. merging starts becomming much more common just because of the skill levels. | 12:37 |
|
| bremner: thats what i mean by a release manager | 12:37 |
| → girishr joined | 12:38 |
|
dmq
| anyway, in a team where they try not to have such things, rebasing starts causing a lot of problems, and so people end up merging a lot. | 12:38 |
|
| at least thats what ive seen so far. | 12:38 |
| ← ankit9 left | 12:38 |
|
bremner
| dmq: ok, I understand your point now. Merging is not the end of the world, after all | 12:38 |
| ← girishr left | 12:38 |
|
dmq
| right, my point was mostly the objective of a clean tree is hard to achieve with a mixed crew of committers. So unless you are willing to have branch managers doing the pull/cherry model (expensive for a company, but superior, and required in open source normally), the end result will be the push/merge model and a "messy tree". | 12:40 |
| ← QaDeS_ left | 12:43 |
|
thiago
| what we're doing is that we're developing a tool to do that for us | 12:44 |
|
| instead of pushing, each person uses a separate command | 12:44 |
|
| that sends the commit(s) into a change-tracking system | 12:44 |
|
| each changeset needs to be reviewed by someone else and it needs to pass the tests | 12:45 |
|
temoto
| thiago: like mondrian? | 12:45 |
|
thiago
| once it does, the system automatically rebases and pushes | 12:45 |
|
| yes | 12:45 |
|
temoto
| thiago: i've heard there's an opensource analog. | 12:45 |
|
dmq
| one of our teams "things" is not having beurocratic barriers to dev. | 12:45 |
|
| they wont go for any kind of formal review process at all. | 12:46 |
|
thiago
| it's not a bureaucratic barrier per se | 12:46 |
|
temoto
| dmq: good one. | 12:46 |
|
thiago
| it's just making a tool for what we already do: reviews | 12:46 |
|
| nothing goes in unless it's reviewed | 12:46 |
|
temoto
| thiago: how's it called? | 12:46 |
|
thiago
| "the tool we're developing" | 12:46 |
|
dmq
| thats a nice system, but its slow, and its expensive. | 12:46 |
|
| :-) | 12:46 |
|
| personally i like the "two man rule", i think that works well. but i cant imagine even that being put in place at my shop. | 12:47 |
|
thiago
| when you have such a huge codebase as we do (even with paying customers), you can't afford silly mistakes to go unchecked. | 12:47 |
| → bryanl joined | 12:47 |
|
petteri
| I, know that this is not a strictly git question, but here it is anyway. I have installed git to /opt/, so /opt/bin/ has git binaries. When I try to use git clone to clone repository over ssh from the host where git is in /opt I get bash: git-upload-pack: command not found. If I execute ssh petteri@host_where_the_git_is_in_opt "echo $PATH" i can see that my path is set correctly, bit I still can't execute any git commands over ssh. Any pointers what I am doing | 12:47 |
|
thiago
| besides, it improves code quality | 12:47 |
|
dmq
| yeah. i understand. | 12:47 |
|
| btw, whats a "huge codebase" to you? | 12:48 |
|
thiago
| right now, what we do is very simple: we have an internal pastebin website | 12:48 |
|
| once you're done with a change, you paste it there, then ping someone on IRC to review it | 12:48 |
|
| usually, that happens within 10 minutes. Once you've got it, you push. | 12:48 |
|
dmq
| are they release managers? or is it just a formal version of two-man? | 12:48 |
|
thiago
| 27000 files, way over a million lines of code. | 12:48 |
|
| any one (who knows the code) | 12:49 |
|
| the release manager has his own branch of what he'll release | 12:49 |
|
dmq
| ah, that sounds pretty reasonable. | 12:49 |
|
| we use one-man change-and-rollout, and suffer the consequences if you break our systems. | 12:50 |
| → branstrom joined | 12:50 |
|
thiago
| as in "push and run" ? :-) | 12:50 |
|
dmq
| heh. | 12:51 |
|
| something like that. | 12:51 |
|
thiago
| we had that a few weeks ago. It was even reviewed... | 12:51 |
|
| but he went on vacation and, next Tuesday, we had to revert everything. | 12:51 |
|
dmq
| push and then sync to whacks of servers and then wait for the fireworks. | 12:51 |
|
| which will come almost instantly. :-) | 12:51 |
|
thiago
| it was supposed to be optimisations, but it introduced a ton of regressions | 12:52 |
|
dmq
| yeah, but that always happens, no matter what you do, if you put code live before a holiday. | 12:52 |
|
thiago
| of course, the worst part is that he's the boss :-) | 12:53 |
| → dato joined | 12:53 |
|
dmq
| Thats the golden rule. Never put code live before the weekend or a vacation. Regardless of how many regression tests you have. The Gods of computing are unyealding on this rule, they Shall Punish All Who Transgress. | 12:53 |
|
| :-) | 12:53 |
|
| the boss eh. | 12:54 |
|
| nice. | 12:54 |
| ← Ademan left | 12:56 |
|
thiago
| and, looking at his code, you know why he's the boss | 12:56 |
|
| I mean, I'm nowhere near inexperienced, but when he asked me to review a set of patches, I kept thinking to myself, "cool, that's very ingenious" | 12:56 |
|
dmq
| heh, that one could go both ways. either its peter principle, or hes really really good. :-) | 12:56 |
|
Ilari
| dmq: The reason for warning seems to be a bug in display_name() of builtin-describe.c. It doesn't take into account that in --all mode, normal tags in refs/tags/ have their names passed as 'tags/foo', while tag object internal name is 'foo'. | 12:56 |
|
| dmq: In non-all mode, tag 'foo' is passed in as 'foo'. | 12:57 |
| → Ademan joined | 12:57 |
| ← d0k left | 12:57 |
|
dmq
| thiago: theres the old line: debugging is harder than coding, so if you code at the maximum of your ability you are by definition not qualified to debug it. | 12:57 |
|
thiago
| yep | 12:57 |
|
dmq
| ilari: so it then strips off the "tags/" and warns about it too? | 12:59 |
|
| neat. | 12:59 |
|
petteri
| found out what was wrong. I had to enable PermitUserEnvironment from sshd_config and add path to ~/.ssh/environment | 13:00 |
|
Ilari
| dmq: I tested patch which strips off 'tags/' prefix in all-refs mode. The test outputs some warnings and errors but they all seem genuine. | 13:00 |
|
| petteri: Bit of warning about 'PermitUserEnvironment'. Some environment variables can be used to cause dynamic linker to transfer control to arbitiary code. So if any user has restricted shell, ensure that they can't modify user environment... | 13:02 |
| ← drizzd left | 13:02 |
|
petteri
| ok, thanks. This machine is only for my private use, but good to know | 13:03 |
|
Ilari
| petteri: It gets worse. Even /bin/false can be hijacked with those env vars... | 13:04 |
| → charon joined | 13:04 |
|
Ilari
| petteri: That is, if "shell" program is not statically linked, setuid, setgid or setsid, it can be hijacked. | 13:05 |
|
| And that setsid thing requires dynamic linker that is aware of AT_SECURE flag. | 13:09 |
|
| setsid = Set Security ID. | 13:09 |
|
petteri
| other option seems to recompile sshd so that its paths include /opt | 13:10 |
|
tomsw
| shouldn't a hard reset delete any local changes? | 13:10 |
|
| if I do "git reset --hard" followed by "git status" there's a changed file | 13:11 |
|
| which I don't understand | 13:11 |
| → chalky joined | 13:13 |
|
j_engelh
| Ilari: absolutely not | 13:13 |
|
| s is for session here, but read the manpage. | 13:14 |
|
Ilari
| j_engelh: sid is also security ID. So like uid => setuid, sid => setsid. Obiviously, setsid() is also function used for something completely different. | 13:18 |
|
j_engelh
| Ilari: only on Windows. And Windows is not quite relevant here :p | 13:19 |
| → d0k joined | 13:25 |
| → oudeis_ joined | 13:25 |
|
Ilari
| j_engelh: Or on Linux with pretty much any LSM more complex than the standard capabilities active... | 13:25 |
|
j_engelh
| fact is, setsid, on Linux, it's session. | 13:26 |
| → flaguy joined | 13:26 |
| → markelikalderon joined | 13:26 |
| → aziz joined | 13:27 |
|
Ilari
| j_engelh: SID is also used to mean 'Security ID'. And not just for Windows... | 13:30 |
| ← bryanl left | 13:30 |
| → unreal joined | 13:32 |
| ← oudeis left | 13:34 |
| ← Flathead left | 13:34 |
| ← oudeis_ left | 13:37 |
|
dato
| why there are only 3 %C<color>? | 13:38 |
|
| (in --pretty, I mean) | 13:38 |
|
Ilari
| dato: Because there aren't more of them implemented? Altough due to limitations of teletypes, there are really only 6 usable colors. | 13:41 |
| ← bentob0x left | 13:41 |
|
dato
| I was hoping for the 7 or 8, plus their bold counterparts | 13:42 |
|
deskin
| dato: you can always inject ascii color sequences using literal bytes, %x00 etc. | 13:42 |
|
dato
| right | 13:42 |
|
Ilari
| dato: The missing three are 'brown', 'cyan' and 'magenta'... | 13:42 |
|
dato
| I also use black sometimes (for grey) | 13:43 |
| → pygi joined | 13:44 |
| ← ph^ left | 13:46 |
| ← masterzen left | 13:48 |
|
Ilari
| There's Xterm 256 colors extension but it is nonstandard... | 13:50 |
| → xenoterracide joined | 13:50 |
|
j_engelh
| 7 usable. | 13:51 |
|
| red,green,brown,blue,magenta,cyan,gray. | 13:51 |
|
xenoterracide
| if I want to change the default pull of git pull how would I do that? read the man page but not sure I get it. (to early in the morn) | 13:51 |
|
j_engelh
| but who cares about 7 | 13:51 |
|
| What one needs to know: VGA has 16 foreground/8 background; standard Xterm has 16/8 by default too plus 3 markups; the 256 are extended indeed. | 13:52 |
|
deskin
| xenoterracide: you mean, the remote repository where pull comes from when you don't give it any arguments? | 13:52 |
|
xenoterracide
| deskin yes | 13:52 |
|
deskin
| look in .git/config for [remote "origin"] section; change the url and fetch parameters to whatever you want | 13:53 |
| → wwwald joined | 13:53 |
|
deskin
| or can be done with git remote, or git config if you prefer | 13:53 |
|
xenoterracide
| do I have to change the origin remote? can I just tell it to use a different remote/branch? | 13:54 |
|
| as default | 13:55 |
|
deskin
| xenoterracide: yes, but then you're giving it an argument :) origin is the default remote by definition, I don't think there's a way to change that | 13:56 |
|
temoto
| Is it possible to commit symlink? | 13:56 |
|
j_engelh
| it is possible to commit murder too. | 13:56 |
|
xenoterracide
| temoto: yes | 13:57 |
|
temoto
| xenoterracide: thank you. | 13:57 |
|
xenoterracide
| deskin: hmm... that sucks | 13:57 |
|
dato
| j_engelh: well, having 3 now, moving to 7 + bolds would be nice. do you think a patch for that would be accepted? | 13:57 |
|
j_engelh
| patch? what? where? | 13:58 |
|
| what has 3? | 13:58 |
|
dato
| sorry, previous conversation | 13:59 |
|
deskin
| xenoterracide: it's just a name; if you like your origin remote, change its name and create a new origin. If your origin really should be origin, well, then make another remote, and when you want to pull from it, give its name explicitly | 13:59 |
|
dato
| 3 == %C{red,green,blue} | 13:59 |
|
j_engelh
| ah git log --pretty.. | 13:59 |
| → CodeOfficer joined | 13:59 |
|
dato
| yes | 13:59 |
|
j_engelh
| that's the worst place to have color in the first place | 14:00 |
|
| dato: you can easily use format:'^[[31m%an' to get red... | 14:01 |
|
dato
| well, I didn't put it there in the firt place | 14:03 |
|
| and since I suspect the existing ones are not going to be removed... | 14:04 |
| → faithfulgeek joined | 14:05 |
|
xenoterracide
| deskin right, just a complication with a patch to a piece of software that can call git, but it's only capable of doing git pull | 14:07 |
|
deskin
| xenoterracide: it must be too early, because I've been misleading you; actually one can have git pull by default use different remotes depending on which branch is checked out; look at 'Default Behaviour' section of man git-pull | 14:09 |
|
Gitbot
| xenoterracide: the git-pull manpage can be found at http://git.or.cz/man/git-pull | 14:09 |
|
deskin
| basically you set git config branch.<branchname>.remote myremote | 14:09 |
|
| and when <branchname> is checked out, git pull uses myremote by default | 14:10 |
| → mw joined | 14:11 |
|
xenoterracide
| deskin see that syntax sounds confusing... I'm getting the impression that's not exactly what I have to put in my .git/config | 14:13 |
| → oudeis joined | 14:13 |
| ← d0k left | 14:13 |
|
deskin
| well, there's more to it (which I elided because I don't know precisely, and don't want to read the docs now); git checkout -t -b mybranch remotes/myremote/remotebranch will set up the config for pulling from myremote, and merging remotebranch, perhaps you can use that as a guide to get started | 14:15 |
| ← scsiraider left | 14:15 |
|
xenoterracide
| ok | 14:15 |
| ← markelikalderon left | 14:23 |
| ← pie left | 14:23 |
| ← Shilin2 left | 14:24 |
| ← quoin left | 14:28 |
| → markelikalderon joined | 14:29 |
| ← Aides left | 14:30 |
| → Aides joined | 14:31 |
| → muthu_ joined | 14:32 |
| → rubydiamond joined | 14:34 |
| ← unreal left | 14:34 |
| ← markelikalderon left | 14:37 |
| ← faithfulgeek left | 14:37 |
| → LiamH joined | 14:38 |
| → parasti joined | 14:43 |
| → __doc__ joined | 14:43 |
| → bosie joined | 14:49 |
| → foutrelis joined | 14:51 |
| → chris2 joined | 14:52 |
| → gasbag joined | 14:53 |
|
Ilari
| dmq: 'git ls-files | grep -v /'? Since filenames can't have '/' in them... | 14:53 |
| → kukks joined | 14:53 |
|
dmq
| very convenient. | 14:54 |
| → Tr3B_ joined | 14:54 |
|
Ilari
| dmq: Well, except that they might have '\n' in them... | 14:54 |
|
dmq
| as in not very conenient. | 14:54 |
|
| and difficult to use in a portable manner. | 14:54 |
| ← Tr3B left | 14:54 |
| → unreal joined | 14:55 |
|
Ilari
| dmq: Not very poritable in what sense? You thinking msysgit or something? Or is '-v' some nonstandard extension? | 14:55 |
|
dmq
| requiring grep can be problematic. | 14:56 |
|
| getting the pattern for grep right can be problematic. | 14:56 |
| ← greyface left | 14:56 |
| → ankit9 joined | 14:57 |
|
dmq
| and yeah, i was thinking windows/linux | 14:57 |
| ← gasbag left | 14:58 |
|
dmq
| i mean, obviously its surmountable, but it would be easier if there was a --no-recurse option. especially if that means doing less work overall. | 14:58 |
|
Ilari
| dmq: Git requires grep anyway. | 14:58 |
|
dmq
| still. | 14:58 |
| ← foutrelis left | 14:59 |
|
Ilari
| dmq: It doesn't mean that much less work... Trees are hierarchial. The index is not. | 14:59 |
|
| dmq: Also, not just filenames can't have '/' in them, any sort of recursive path MUST have '/' in it. | 15:00 |
|
bremner
| so if I wedged HEAD, and now git things it isn't a repo anymore, should I just edit .git/HEAD | 15:01 |
|
Ilari
| bremner: Yup. What it contains now? | 15:01 |
| ← pygi left | 15:01 |
|
dmq
| ilari: well, ok. but, well, i still a think a --no-recurse option makes sense. | 15:02 |
|
bremner
| Ilari: ref: checkout | 15:02 |
|
| bremner observes one should type carefully when using git-symbolic-ref | 15:03 |
|
Ilari
| bremner: Huh... If its not detached, it should contain "ref: refs/heads/foo'... | 15:03 |
|
bremner
| Ilari: I was trying to make a detached worktree, but I think I made a typo | 15:05 |
|
| bremner: now I guess I want reset --hard to restore sanity | 15:06 |
| → pygi joined | 15:06 |
|
bremner
| footgun back in the holster. Is there a nice description of using detached worktrees somewhere? | 15:08 |
| → rubydiam_ joined | 15:10 |
| ← rubydiamond left | 15:10 |
| → Acry_ler joined | 15:10 |
| → jm joined | 15:12 |
| → foutrelis joined | 15:15 |
| ← Acryler left | 15:15 |
|
Ilari
| bremner: You mean Detached HEAD or creating two working directories for the same repository? | 15:16 |
|
bremner
| Ilari: two working directories for same repo (second will be read only) | 15:16 |
|
Ilari
| bremner: It doesn't have to be read only (just don't check out the same branch twice)... | 15:17 |
|
bremner
| Ilari: ahh, there was my mistake | 15:17 |
| → ph^ joined | 15:18 |
|
bremner
| bremner: I can make a temporary branch I guess | 15:18 |
| rubydiam_ → rubydiamond | 15:18 |
| → marvil07 joined | 15:21 |
|
bremner
| 'git --git-dir=$PWD/.git --work-tree=/tmp/foo checkout tmp' doesn't work by itself because everything is deleted. Do I need git-read-tree first? | 15:23 |
|
| or git archive to get the files? | 15:23 |
|
| (/tmp/foo is empty to start) | 15:24 |
| → bobmcw joined | 15:24 |
| ← Illocution left | 15:24 |
| ← bobmcw left | 15:25 |
| → Illocution joined | 15:25 |
| → bobmcw joined | 15:25 |
|
bremner
| bremner, ok git reset seems to do the trick. sorry for the noise | 15:26 |
| ← rubydiamond left | 15:29 |
| → bryanl joined | 15:30 |
| → earcar joined | 15:32 |
|
bremner
| one more question (for now :-). Is there a good way to find where the .git dir is in a normal worktree? I guess git does this all the time. | 15:33 |
| → greyface joined | 15:34 |
|
deskin
| bremner: git rev-parse --git-dir, as long as you're not in a subdir of .git itself | 15:34 |
|
bremner
| deskin, thanks | 15:35 |
| ← Khisanth left | 15:35 |
|
deskin
| --show | 15:35 |
|
| er --show-cdup is similar, in that it gives the argument to cd which will put you at the top of the worktree | 15:35 |
|
Ilari
| bremner: There's script for making new working trees. And it makes new repo which has some stuff as symlinks (refs/, logs/ and objects/) and some as seperate stuff. | 15:38 |
|
bremner
| Ilari: sounds useful. Actually, I figured out I can use git-archive, then set GIT_DIR the topgit export operation. That seems cleaner. | 15:39 |
| ← __doc__ left | 15:41 |
|
bremner
| deskin: ref-parse --git-dir seems slightly inconsistent, since it gives absolute paths unless in the root of the worktree | 15:41 |
|
| s/ref-parse/rev-parse | 15:42 |
| → aoper_ joined | 15:42 |
| ← aoper left | 15:42 |
| → danten joined | 15:43 |
|
bremner
| deskin, anyway cdup is certainly usable, thanks again | 15:44 |
| → gebi_ joined | 15:45 |
| ← bosie left | 15:48 |
| ← gebi_ left | 15:50 |
| → gebi_ joined | 15:50 |
| ← bobmcw left | 15:52 |
| ← gebi left | 15:56 |
| ← lresende left | 15:56 |
| ← temoto left | 16:01 |
| ← Tr3B_ left | 16:03 |
| ← tanek__ left | 16:07 |
| → tanek_ joined | 16:09 |
| ← charon left | 16:12 |
| → metaskills joined | 16:14 |
| → brennandunn joined | 16:15 |
|
metaskills
| Whoa... first time visiter to this channel. Lot of people :) Quick question if anyone can help. | 16:15 |
|
jast
| there's always a good chance someone can | 16:15 |
|
metaskills
| I am looking to share a topic branch that I'm pushing to a local server both me and a co-worker have access too. | 16:16 |
|
| This topic branch is very divergent from the master and every now and then when I rebase it I have to alter some past commits in that topic branch to remove a file, where it was previously edited. | 16:17 |
|
| The problem is when I go to push that topic branch up to the server I am sharing it over, I get [rejected] messages. | 16:17 |
| ← Simetrical left | 16:18 |
|
jast
| the problem is that rebased branches and pull don't like each other much | 16:18 |
|
| you can force the push (e.g. using -f) but the next pull by the other guy will be icky, and so on for every rebase either of you does | 16:18 |
|
| same for pull --rebase, I guess | 16:19 |
|
metaskills
| That makes sense... let me try the -f option. | 16:19 |
|
| That did work... I | 16:20 |
| → Simetrical joined | 16:20 |
|
metaskills
| http://pastie.org/346999 | 16:21 |
|
| Is this a no win scenerio? | 16:21 |
| ← mndoci_ left | 16:21 |
|
jast
| collaborating on rebased branches always involves a fair amount of manual work | 16:21 |
|
metaskills
| That sounds fair. | 16:22 |
|
jast
| probably the easiest way to work with rebased branches is to create a series of patches from your local unpublished commits in that branch | 16:22 |
| ← eMBee left | 16:22 |
|
mnemoc
| metaskills: rebase to the remote branch before pushing | 16:22 |
| gebi_ → gebi | 16:22 |
| → eMBee joined | 16:22 |
|
jast
| and whenever you get an update from the other side, you just reset the topic branch to whatever went upstream and reapply those patches | 16:22 |
|
| once you start rewriting older commits using pull --rebase or similar might be icky too | 16:23 |
|
| it's worth a try, i suppose. you can undo pretty much anything anyway (if you know how). | 16:23 |
|
metaskills
| This is great info. I never knew you could rebase to a remote branch. Likewise the --rebase option to pull. | 16:25 |
| ← peritus_ left | 16:25 |
|
jast
| you can rebase against pretty much anything (though it doesn't always make sense, of course) | 16:25 |
| ← thiago left | 16:26 |
| → nice_burger joined | 16:26 |
| → stephens joined | 16:28 |
| ← jmatthews left | 16:30 |
| → markkalderon joined | 16:33 |
| → QaDeS_ joined | 16:33 |
| ← earcar left | 16:33 |
| → ckm joined | 16:34 |
| → jmatthews joined | 16:36 |
|
Sonderblade
| when using git-svn, is there a way to pull from the svn repository so that all new changes from it comes before all local branches? | 16:37 |
|
j_engelh
| eh? | 16:38 |
| ← markkalderon left | 16:38 |
|
nice_burger
| really doubt it | 16:38 |
|
j_engelh
| sounds like trying to solve a nonexistent problem | 16:38 |
|
Sonderblade
| well i have x feature branches all based on the svn master | 16:39 |
|
nice_burger
| why would the order matter though | 16:39 |
|
j_engelh
| that's my word | 16:39 |
|
Sonderblade
| when someone commits to the svn repos, i want those commits to go before my local ones, so that my feature branches will still apply cleanly to svn trunk | 16:39 |
|
metaskills
| @jast and @mnemoc Was just chatting with my co-worker. It seems this is not so bad. I'll champion the rebase of our TB to master after we both reach certain milestones. If there is a conflict that causes me to alter a commit in the shared TB, then I'll use the -f option and he will delete and retrack the TB. Thanks for the help!!! | 16:40 |
|
jast
| sounds good. have fun. :) | 16:40 |
|
metaskills
| Thanks. | 16:41 |
| ← bryanl left | 16:41 |
| ← raz left | 16:41 |
| ← omakase left | 16:42 |
| ← EgS left | 16:42 |
| ← Sput left | 16:42 |
|
metaskills
| Sonderblad: You should be working in a topic branch. | 16:43 |
| → EgS joined | 16:43 |
| → Sput joined | 16:43 |
|
Sonderblade
| metaskills: i am, thats what i meant with feature branch | 16:43 |
|
metaskills
| And just rebase from master. That way when you are ready to move those commits from your topic branch it will replay them all on top of master... they are ordered correctly. | 16:44 |
|
| Oh... I might not understand the issue then. | 16:44 |
|
| Because when I work in that flow, my TB commits are always after svn trunk ones. | 16:45 |
|
Sonderblade
| it is hard to explain | 16:46 |
| ← rtomayko_ left | 16:46 |
| ← dmq left | 16:47 |
|
parasti
| Sonderblade: how are you updating your git-svn repo? the only way I know of is by using "git svn rebase", and it does exactly what you're asking for | 16:49 |
| → peritus_ joined | 16:49 |
|
Sonderblade
| my repo tree looks like this: first master then 10 random commits, then head A. on top of head A there are 3 head branches B, C, D. | 16:51 |
| → akitada joined | 16:51 |
|
Sonderblade
| when i stand in head A and type "git svn rebase" new changes from svn is placed after head A | 16:51 |
|
| which is not what i wanted. i wanted all new svn changes to be placed before the first commit to the head A branch | 16:52 |
| → Yuuhi joined | 16:52 |
|
da1l6
| hi | 16:53 |
|
metaskills
| Sounds like your using git-svn to sync to more than one svn branch? If so that is far above what I do. | 16:54 |
|
da1l6
| Tried to use git filter-branch to replace some invalid email addreses in older commit messages. | 16:54 |
|
| But it keeps on frying the repository. | 16:54 |
|
| Even simplifying a manpage example to the point where it essentially should do nothing has this problem: | 16:54 |
| → bobmcw joined | 16:55 |
|
da1l6
| $ git filter-branch --commit-filter `git commit-tree "$@";` HEAD | 16:55 |
|
| Outputs lots of usage help messages and end with: | 16:55 |
|
| Ref 'refs/heads/master' was deleted | 16:55 |
|
| fatal: Not a valid object name HEAD | 16:55 |
|
| any hints what i am doing wrong? | 16:55 |
|
Sonderblade
| metaskills: nope | 16:55 |
| ← wwwald left | 16:56 |
|
da1l6
| git version 1.5.6.3 | 16:56 |
| → aspotashev joined | 17:01 |
| → nothinghappens joined | 17:02 |
| ← bobmcw left | 17:03 |
|
parasti
| Sonderblade: git svn rebase works by taking all the commits since the last SVN commit, fetching new commits from SVN, then applying the non-SVN commits on top of the new commits | 17:03 |
| → RayMorgan joined | 17:03 |
|
parasti
| Sonderblade: if that's not what happens in your case, either it's a bug or there's something you're not telling us | 17:03 |
| → bobmcw joined | 17:04 |
|
Sonderblade
| parasti: does the "non-SVN commits" include all the local commits in all local branches? | 17:04 |
|
parasti
| Sonderblade: only the branch you are on when running git svn rebase | 17:04 |
|
Sonderblade
| parasti: ah so that is why it messes up my repository and creates duplicate commits | 17:06 |
| → dasil003 joined | 17:06 |
|
parasti
| Sonderblade: when you work with topic branches, usually you git svn rebase the main branch (like master), and then rebase each topic branch against master | 17:06 |
|
| err, against the main branch | 17:07 |
| → josephwilk joined | 17:07 |
|
Sonderblade
| parasti: that's what i'm doing. it just seems unoptimal | 17:07 |
| ← bobmcw left | 17:09 |
| → icwiener joined | 17:09 |
| → cgardner joined | 17:11 |
| ← josephwilk left | 17:12 |
| → bobmcw joined | 17:17 |
| → rubydiamond joined | 17:18 |
| ← metaskills left | 17:20 |
| ← __david left | 17:21 |
| ← dasil003 left | 17:21 |
| QaDeS_ → QaDeS | 17:24 |
| → ceej joined | 17:24 |
| → ceej_ joined | 17:26 |
| ← brennandunn left | 17:27 |
| ← jepler left | 17:28 |
| ← rubydiamond left | 17:30 |
| ← akitada left | 17:31 |
| → RayMorgan_ joined | 17:34 |
| → jackdempsey joined | 17:35 |
| → bdiego joined | 17:37 |
| ← ckm left | 17:38 |
| → ashH joined | 17:39 |
| ← RayMorgan left | 17:40 |
| → hobodave joined | 17:45 |
| → litage joined | 17:46 |
| ← oudeis left | 17:48 |
| → oudeis joined | 17:49 |
| ← ceej left | 17:49 |
| ← aoper_ left | 17:52 |
| → aoper joined | 17:53 |
| ← Simetrical left | 17:53 |
| ceej_ → ceej | 17:54 |
| ← aoper left | 17:54 |
| → aoper joined | 17:55 |
| ← muthu_ left | 17:55 |
| → omakase joined | 17:59 |
| → Simetrical joined | 18:00 |
| ← foutrelis left | 18:04 |
| → pedro_mg joined | 18:06 |
| ← unreal left | 18:10 |
| → unreal joined | 18:13 |
| → d0k joined | 18:18 |
| ← QaDeS left | 18:18 |
| → davidfetter joined | 18:21 |
| → abbe joined | 18:22 |
| ← peritus_ left | 18:23 |
| → octernion joined | 18:23 |
|
octernion
| hi, is there an easy way to apply all the commits from one branch in a specific directory to another branch? | 18:23 |
|
mnemoc
| octernion: add it as a remote and cherry-pick the range (or rebase) | 18:27 |
|
bremner
| mnemoc: "in a specific directory" ? | 18:28 |
|
octernion
| mnemoc: oh, i didn't know i could add arbitrary directories as remotes? | 18:28 |
|
jast
| arbitrary repositories, to be precise | 18:28 |
| ← jackdempsey left | 18:29 |
|
mnemoc
| I assume it's another working directory (with it's corresponding .git) | 18:29 |
|
bremner
| octernion: the only way I know off hand uses git-filter-branch and git-format-patch. | 18:29 |
| → mndoci joined | 18:29 |
|
bremner
| octernion: I assume you just want changes to a subdir? | 18:29 |
|
octernion
| well, the directory itself doesn't have a .git | 18:29 |
|
aspotashev
| he probably meant "parts of commits" regarding particular subdirectories in the repository | 18:29 |
|
octernion
| bremner: yes, exactly | 18:29 |
|
| aspotashev: yes, sorry for not being clear | 18:29 |
|
mnemoc
| ic | 18:29 |
|
octernion
| i will take a look at filter-branch and format-patch | 18:30 |
|
mnemoc
| if it's not a working directory, he doesn't have commits to filter | 18:30 |
|
bremner
| octernion: basically use (I think) subtree filter in a clone of the repo to get rid of everything else, format-patch to make patches, and git am to apply them | 18:31 |
|
| less messy suggestions welcome | 18:31 |
|
octernion
| bremner: dang, that sounds pretty complicated :) | 18:31 |
| → patrikf joined | 18:31 |
|
octernion
| the problem arose because i was very stupid and thought i was working on master, when i was in fact working on a branch, and i want the specific changes (all in one subdirectory) to be available on master | 18:32 |
|
bremner
| octernion: if the changes really only touch that directory, you can use rebase | 18:33 |
| → lresende joined | 18:33 |
|
octernion
| bremner: yep, they are all there. how do i do that for the subdirectory? | 18:33 |
| ← lresende left | 18:33 |
|
octernion
| (sorry, i've never actually used rebase :/) | 18:33 |
| → etienne9 joined | 18:34 |
|
bremner
| octernion: basically git checkout master && git rebase other-branch. see man git-rebase for some examples | 18:35 |
|
Gitbot
| octernion: the git-rebase manpage can be found at http://git.or.cz/man/git-rebase | 18:35 |
| → QaDeS joined | 18:35 |
|
octernion
| ok. the manpage is pretty helpful for that, i just didn't see anything pertaining to subdirectories | 18:36 |
| ← ankit9 left | 18:36 |
|
Tv
| octernion: i don't see how subdirectories make any difference, in this case | 18:37 |
|
bremner
| octernion: you have to identify the commits somehow (git log is probably enough) | 18:37 |
|
octernion
| bremner: ahh, ok, i gotcha. thanks very much! | 18:37 |
| → lolage0 joined | 18:38 |
|
parasti
| bremner: that rebase example seems strange. what would it do? reset master to other-branch, then apply other-branch..master commits on top of it (basically a no-op)? | 18:39 |
|
bremner
| parasti: well, in the optimistic case that other-branch was branched from master, it should bring the other commits back. But yeah, in general more is needed | 18:40 |
| → markelikalderon joined | 18:41 |
|
bremner
| parasti: or maybe I am confused here. | 18:42 |
|
parasti
| bremner: I think the short version of that command sequence is git reset --hard other-branch :P | 18:42 |
| ← aspotashev left | 18:44 |
|
bremner
| parasti: ok, the goal is git checkout other-branch && git format-patch since && git-checkout master && git am 000* | 18:44 |
| → aspotashev joined | 18:45 |
| ← offby1 left | 18:45 |
|
bremner
| Can't rebase do that? I guess --onto is the trick, see the example in the man page | 18:46 |
| → faithfulgeek joined | 18:47 |
|
parasti
| bremner: yeah, that might work | 18:47 |
| ← faithfulgeek left | 18:47 |
| → faithfulgeek joined | 18:48 |
|
bremner
| octernion: you follow that? | 18:48 |
|
octernion
| bremner: hmm, nope. i ended up just formatting the patch like you suggested earlier | 18:48 |
|
bremner
| octernion: OK :-) | 18:48 |
|
octernion
| it really wasn't that bad, since i realized it was only one commit :) | 18:48 |
|
bremner
| octernion: ahh, next time git-cherry-pick | 18:49 |
|
octernion
| but thanks for the comprehensive answer; i knew git would be able to do it | 18:49 |
|
| bremner: yeah, actually i just saw it after i formatted it :( | 18:49 |
|
| er, by it i mean i saw git-cherry-pick | 18:49 |
|
parasti
| "git log --pretty=email --reverse -p ..other-branch -- $subdir | git am | 18:49 |
|
| " might do the trick | 18:49 |
|
octernion
| parasti: wow, nifty. thanks :) | 18:50 |
| ← faithfulgeek left | 18:50 |
| ← bobmcw left | 18:53 |
| → Mo joined | 18:53 |
|
Mo
| hi.how are you | 18:55 |
|
j_engelh
| better than you :p | 18:55 |
| → dreiss joined | 18:57 |
|
mnemoc
| woh, long time without seeing someone on irc with such a possive view of his life | 18:58 |
| ← Mo left | 18:59 |
| → Jacolyte joined | 19:00 |
| ← tomsw left | 19:03 |
| → markoa joined | 19:05 |
| → name joined | 19:07 |
| → jackdempsey joined | 19:07 |
| → offby1 joined | 19:09 |
| ← name left | 19:10 |
| → perezd88 joined | 19:12 |
| ← octernion left | 19:14 |
| ← ceej left | 19:16 |
| → jbellis joined | 19:20 |
| ← jbellis left | 19:21 |
| → earcar joined | 19:21 |
| → bosie joined | 19:21 |
| ← aoper left | 19:22 |
| ← earcar left | 19:24 |
| → jschoolcraft joined | 19:25 |
|
jschoolcraft
| can you git clone a specific branch or do you have to clone the whole repo and checkout the branch in question? | 19:25 |
|
offby1
| excellent question | 19:26 |
|
| dunno | 19:26 |
|
| my guess is: yes, but you don't use "git clone" | 19:26 |
| ← QaDeS left | 19:27 |
|
Tv
| jschoolcraft: you could init, remote add, fetch just the branch you're interested in, checkout -b | 19:27 |
|
offby1
| instead I'd do "git init" and then "git remote add", passing a refspec that includes only that branch | 19:27 |
|
Tv
| jschoolcraft: most likely that isn't worth the trouble | 19:27 |
|
offby1
| depends: if the source repository has a bunch of unrelated stuff in it, it might save a lot of download time | 19:27 |
|
Tv
| jschoolcraft: and if you weren't interested in minimizing download, just affecting what branch is checked out after clone, clone just checks out the remote HEAD, no way to affect that | 19:27 |
|
| offby1: and i'm guessing 90% of the time typing in all that is slower than the download ;) | 19:28 |
|
offby1
| could be | 19:28 |
|
Tv
| jschoolcraft: git clone foo bar && cd bar && git checkout -b foo origin/foo | 19:29 |
|
jschoolcraft
| Tv: offby1: thanks | 19:29 |
|
Tv
| (maybe with less collisions of meaning of foo) | 19:29 |
| ← greyface left | 19:29 |
|
j_engelh
| offby1: -> offbydefault | 19:30 |
| → rubydiamond joined | 19:30 |
| → cemerick joined | 19:36 |
|
offby1
| dude, don't be hatin' on my nick | 19:41 |
| ← metajack left | 19:42 |
| → metajack joined | 19:42 |
|
davidfetter
| happy boxing day, Tv :) | 19:43 |
| ← markoa left | 19:43 |
| → k776 joined | 19:45 |
| ← ph^ left | 19:48 |
| ← marvil07 left | 19:48 |
| → kumbayo joined | 19:48 |
| → ph^ joined | 19:49 |
| → charon joined | 19:49 |
| → sgrimm joined | 19:54 |
| → faithfulgeek joined | 19:55 |
| → dwmw2_gone joined | 20:00 |
| ← jschoolcraft left | 20:01 |
| → leveille joined | 20:04 |
| ← iulian left | 20:09 |
| ← k776 left | 20:18 |
| ← Tsion left | 20:20 |
| → jstad joined | 20:23 |
| ← cemerick left | 20:25 |
| → advany joined | 20:27 |
| → lresende joined | 20:28 |
| → Eulex joined | 20:28 |
|
Eulex
| hello | 20:28 |
|
| offby1 glances around nervously. | 20:28 |
|
me22
| uhoh | 20:29 |
|
Eulex
| is there a way to properly clone a git-svn repo (so that I can commit) other than copying the files themselves? | 20:29 |
| ← LiamH left | 20:30 |
|
Tv
| Eulex: cloning it and git svn rebuild used to work, but that command doesn't seem to exist anymore | 20:31 |
|
charon
| Eulex: run the same 'git svn init' command as for the original repo (or copy the relevant bits of .git/config), copy over the refs used by git-svn (possibly 'git-svn' or 'trunk'), then run 'git svn fetch' to rebuild its cache | 20:32 |
| ← scientes left | 20:32 |
| → scientes joined | 20:32 |
|
offby1
| charon: will that require re-downloading all the svn commits? | 20:33 |
|
Tv
| offby1: at least with older versions that was a "no" | 20:33 |
|
charon
| offby1: no, git-svn will just regenerate its internal cache from the git-svn-id: lines in the commit messages | 20:33 |
|
offby1
| good. | 20:33 |
|
charon
| of course that won't work if you said --no-metadata, but you obviously shouldn't. | 20:33 |
|
offby1
| I too have thought about this | 20:33 |
|
Tv
| git svn changes incompatibly often enough that it's kinda hard to know how it behaves | 20:33 |
|
Eulex
| charon: let's try that | 20:36 |
|
charon
| note that some tweaking of the fetch lines in .git/config may make this task much easier if you intend to run a central git-svn mirror that the other repos can fetch from | 20:38 |
| ← perezd88 left | 20:38 |
| → ashleyw joined | 20:40 |
|
Eulex
| charon: interesting, which would those be? | 20:43 |
|
offby1
| yeah, do tell | 20:46 |
|
Tv
| probably make git-svn write refs outside the remotes/ namespace, IIRC it does that by default | 20:47 |
|
| (and that default makes perfect sense, they are refs controlled by outsiders, you shouldn't checkout & commit to them, etc..) | 20:47 |
|
charon
| that, or fetch them in the clone | 20:50 |
|
Tv
| well that's a per-clone config change | 20:51 |
|
charon
| true, but it'll put them in the place where git-svn expects it | 20:51 |
|
| e.g. you could add a line to the remote saying 'fetch = +refs/remotes/git-svn:refs/remotes/git-svn' (if you use a branch-less git-svn setup) | 20:51 |
|
Tv
| yeah.. git-svn isn't really designed to share the gittifying work | 20:51 |
|
offby1
| that sounds awfully sensible | 20:52 |
|
| wonder why I didn't think of that | 20:52 |
| → bobesponja joined | 20:54 |
|
jast
| there's an example in the git-svn manpage for the centralized git-svn mirror scenario | 20:54 |
| → drizzd joined | 20:54 |
| ← leveille left | 20:56 |
|
offby1
| there is?! | 20:57 |
|
| offby1 never noticed that | 20:57 |
|
Eulex
| jast: taking a look at that | 20:58 |
|
offby1
| Oh yeah: "If multiple people (or one person with multiple machines) want to use ..." | 20:58 |
| ← metajack left | 20:58 |
|
jast
| yeah, that | 20:58 |
|
| recently fixed so it actually works | 20:59 |
|
offby1
| never even thought to try that. | 20:59 |
|
| offby1 administers self-dope-slap | 20:59 |
| ← chalky left | 20:59 |
| → metajack joined | 20:59 |
|
offby1
| The question is: can those different people share patches without committing them to svn? | 21:00 |
|
jast
| that's where it gets hairy | 21:00 |
|
offby1
| I managed somehow. Not sure what I did. | 21:00 |
|
jast
| it's not that bad if you have a single integrator | 21:01 |
|
offby1
| actually, in my case, "those different people" were all me, just working on different machines. | 21:01 |
| ← icwiener left | 21:01 |
|
offby1
| My company uses svn, but I prefer git ... and I sometimes do my work on my work box, and sometimes on my laptop at home. | 21:01 |
|
jast
| if the patches in question don't change during the rebase (and neither does their order), it generally works | 21:02 |
| → chipdude joined | 21:03 |
| → bobesponja_ joined | 21:06 |
|
offby1
| I suspect I fell into that category | 21:06 |
| ← exg left | 21:07 |
| ← oudeis left | 21:07 |
|
Eulex
| jast: I suspect I've got such instructions that don't work; I never get any contents in the directory itself, and the last command to run, git-svn rebase, fails with "fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree." | 21:07 |
| ← bdiego left | 21:07 |
|
Eulex
| so where do I find the new ones? :) | 21:08 |
|
| nvm, found it | 21:09 |
| ← bobesponja_ left | 21:11 |
| → dduncan joined | 21:12 |
| ← jstad left | 21:12 |
| ← bobesponja left | 21:13 |
|
jast
| great :) | 21:13 |
|
offby1
| I love questions that answer themselves | 21:14 |
| ← dduncan left | 21:14 |
| ← pygi left | 21:15 |
| ← abbe left | 21:15 |
| → clairvy joined | 21:18 |
| → altfive joined | 21:19 |
| → ijcd joined | 21:19 |
|
Eulex
| now I've got a directory full of files, and all three branches (master, git-svn and git-svn@1081), I ran git-svn init to set the right upstream svn repo, but when I run git-svn rebase I get "Unable to determine upstream SVN information from working tree history" | 21:19 |
| → exg joined | 21:20 |
| → name joined | 21:20 |
| → rtomayko joined | 21:21 |
| → pygi joined | 21:25 |
| → spearce joined | 21:26 |
| → marvil07 joined | 21:26 |
| → clairvy__ joined | 21:28 |
| → oudeis joined | 21:31 |
| → Tr3B joined | 21:32 |
| ← cgardner left | 21:32 |
| → cemerick joined | 21:32 |
| ← faithfulgeek left | 21:36 |
|
Sonderblade
| i have a gray "stash" branch, how do i reach it? | 21:37 |
| → DrNick2 joined | 21:37 |
|
j_engelh
| gray!? | 21:37 |
|
| it's either blue or it's your terminal color | 21:37 |
| ← DrNick left | 21:38 |
| DrNick2 → DrNick | 21:38 |
|
drizzd
| in gitk it's grey I believe | 21:38 |
| ← Voker57 left | 21:39 |
|
j_engelh
| absolutely not. | 21:39 |
|
| For believing, please visit Church. | 21:39 |
|
vmiklos
| :) | 21:39 |
|
drizzd
| j_engelh: the "stash" label in gitk is grey (the shade between black and white) | 21:40 |
|
Sonderblade
| whatever | 21:41 |
|
| i still need to reach it | 21:41 |
| ← cemerick left | 21:41 |
|
doener
| it's not a branch (like master), it's a ref referencing your top-most stash entry | 21:41 |
|
drizzd
| Sonderblade: the stash is not really a branch, see "git stash list" | 21:42 |
|
doener
| and the stash is accessed using "git stash" | 21:42 |
|
Sonderblade
| is it deletable? i dont want it anymore | 21:42 |
|
doener
| git help stash | 21:43 |
| ← clairvy left | 21:44 |
|
j_engelh
| your display must really suck then | 21:44 |
| ← mndoci left | 21:44 |
|
j_engelh
| stash tag is not gray: http://tinyurl.com/a5wpea | 21:45 |
|
drizzd
| j_engelh: what color do you think it is? your picture still looks grey to me | 21:46 |
|
Sonderblade
| me too | 21:47 |
|
| it is your display that suck! | 21:47 |
|
j_engelh
| drizzd: pale blue. aka #8080FF | 21:47 |
|
| mixed by using 1/2 #0000FF + 1/2 #FFFFFF | 21:48 |
| ← ashleyw left | 21:49 |
|
doener
| hm, gimp tells me that it's #ddddff | 21:49 |
|
j_engelh
| that's still not gray | 21:50 |
|
| (albeit a bit more of the 'pale' in 'pale blue') | 21:50 |
|
doener
| I didn't say it's grey, just that it's #ddddff, not #8080ff | 21:50 |
|
j_engelh
| point taken | 21:51 |
| → cemerick joined | 21:52 |
| → mndoci joined | 21:55 |
| ← cemerick left | 21:57 |
| → knobo joined | 21:57 |
|
Sonderblade
| i have a TB on top of my local branch which is branched from master. is there a way to diff TB against master so that the changes in the local branch is somehow excluded? | 21:59 |
|
gitster
| rebase TB on top of master? | 22:00 |
|
Sonderblade
| then i will get lots of conflicts to resolve | 22:01 |
|
doener
| hm, do you really want to diff against master, or do you want a diff of the changes that "TB" introduced? | 22:01 |
|
| for the latter, "git diff local...TB" should do | 22:01 |
|
| that's a diff of TB against the merge base of TB and "local" | 22:02 |
| ← offby1 left | 22:03 |
| → joshdavey joined | 22:03 |
|
doener
| short of a better description: a cumulative diff of the commits that are in TB but not in local | 22:03 |
|
Sonderblade
| i want the changes TB would have introduced had it been based on master | 22:05 |
| → gottesmm joined | 22:05 |
|
Sonderblade
| the TB to master diff - the local to mater diff | 22:06 |
|
drizzd
| git diff master..TB | 22:06 |
|
Sonderblade
| drizzd: no, that includes changesets from local | 22:07 |
|
drizzd
| Sonderblade: if git rebase cannot rebase without conflicts, how do you think git diff should be able to find the solution? | 22:09 |
|
Sonderblade
| by subtracting the local branch changesets | 22:12 |
| mw → mw|out | 22:12 |
| ← scientes left | 22:13 |
| → perezd88 joined | 22:14 |
| ← perezd88 left | 22:14 |
| → alikins_ joined | 22:17 |
| ← spearce left | 22:18 |
| → greyface joined | 22:18 |
| ← alikins left | 22:18 |
| ← mw|out left | 22:19 |
| → mw|out joined | 22:20 |
| ← pedro_mg left | 22:23 |
| ← nice_burger left | 22:24 |
| ← davidfetter left | 22:26 |
|
knobo
| If someone pushes changes to my repository, I can see the changes with git-log, but how do I update my branch(current files) with the canges? | 22:27 |
| ← Acry_ler left | 22:29 |
|
knobo
| git-fetch says: fatal: 'origin': unable to chdir or not a git archive | 22:29 |
|
Eulex
| you could fetch directly from the url to the repo | 22:29 |
|
| or set origin correctly, then retry | 22:30 |
|
| (git remote add origin blahblah) | 22:30 |
|
knobo
| so git fetch ./git should do it? | 22:30 |
|
gitster
| knobo: is this about the "don't push into a non-bare repository" faq? | 22:30 |
| → ari-_-e joined | 22:31 |
|
knobo
| gitster: I don't know. I'll have to check. | 22:31 |
| → gasbag joined | 22:31 |
|
Eulex
| uh, so someone pushed into your repository on your computer? | 22:31 |
|
gitster
| you earlier said "someone pushes changes to my repository". | 22:31 |
|
ari-_-e
| how might I go about completely removing a couple of commits from my history, i.e. without using git revert? | 22:31 |
|
| and no, they're not the two most current ones | 22:31 |
|
Eulex
| or to the repository on a server? | 22:31 |
|
parasti
| ari-_-e: git rebase -i $commitbeforeallofthem | 22:32 |
|
gitster
| that is not exact enough description. "to your repository's _which_ branch" and "if that branch is the one you have checked out and is working on" are necessary to answer your question. | 22:32 |
|
parasti
| ari-_-e: it might not work if you have merges after that commit, have a look at the manpage | 22:33 |
|
ari-_-e
| parasti: no merges, this is a very simple linear history | 22:33 |
|
gitster
| If the answers are "pushed to the branch I have checked out", and "no, luckily I do not have any local changes in my working tree", then the answer is "git reset --hard". But look for "mothership/satellite" to find a better arrangement to allow pushing into a non-bare repository in the FAQ. | 22:34 |
|
ari-_-e
| parasti: NICE, I tried using git-rebase, but I was missing the -i | 22:34 |
|
| worked like a charm, thanks | 22:34 |
|
parasti
| ari-_-e: you've been missing out. ;) have fun | 22:35 |
|
knobo
| gitster: it's the "Why won't I see changes in the remote repo after "git push"?" faq. | 22:35 |
|
| So, I'll just read the faq. | 22:35 |
|
Eulex
| knobo: as I said, it appears that you don't have an origin set. | 22:36 |
|
| gitster has given answers in advance ;-) | 22:36 |
| ← joshdavey left | 22:40 |
| ← altfive left | 22:40 |
| → __doc__ joined | 22:41 |
| ← gasbag left | 22:42 |
|
knobo
| Eulex: it appears that I did not read the faq ;) | 22:43 |
|
Eulex
| :) | 22:44 |
| ← danten left | 22:45 |
|
ari-_-e
| so if I have some random string, how would I go about finding out if it's the name of a branch? | 22:45 |
|
Eulex
| well, is i listed in git branch? :) | 22:46 |
|
ari-_-e
| right, but programmatically | 22:47 |
|
| I assume git branch|grep stuff isn't the right way to do it :-/ | 22:47 |
|
Eulex
| you could |grep "^[* ] stuff$" I guess | 22:49 |
| → git_ joined | 22:51 |
|
git_
| hi, anyone know where i can get a static binary of git? | 22:51 |
| ← rtomayko left | 22:52 |
| → faithfulgeek joined | 22:52 |
|
drizzd
| ari-_-e: git show-ref --heads <branch> (no output if <branch> is not a branch) | 22:52 |
|
ari-_-e
| drizzd: cool, thanks | 22:52 |
|
drizzd
| git_: your preferred distribution probably | 22:53 |
| ← gottesmm left | 22:54 |
| → cemerick joined | 22:56 |
| → gottesmm joined | 22:56 |
| ← cemerick left | 22:57 |
| ← marvil07 left | 22:58 |
| → akitada joined | 23:00 |
| ← Ademan left | 23:09 |
| → peritus_ joined | 23:10 |
| ← j_engelh left | 23:10 |
| ← daonb left | 23:15 |
| ← gottesmm left | 23:17 |
| → Turl1 joined | 23:20 |
|
Turl1
| hello1 | 23:20 |
| ← kukks left | 23:20 |
|
Turl1
| how can I revert any changes to my git clone and leave it as it is in the server? | 23:20 |
| ← selckin left | 23:20 |
| → spearce joined | 23:24 |
| ← kumbayo left | 23:25 |
| ← peritus_ left | 23:26 |
| → spearce` joined | 23:27 |
| ← spearce left | 23:29 |
| ← hobodave left | 23:32 |
| ← bosie left | 23:33 |
| → j_engelh joined | 23:33 |
| ← j_engelh left | 23:33 |
|
charon
| Turl1: depends what kind of changes you made. if you are still on the 'master' branch (check 'git branch') and the 'origin' remote is still there, you can say 'git reset --hard origin/master'. obviously that's a rather destructive operation. | 23:35 |
| ← ph^ left | 23:37 |
| ← markelikalderon left | 23:37 |
| → markelikalderon joined | 23:38 |
| ← markelikalderon left | 23:38 |
| → lholden joined | 23:40 |
| ← Tr3B left | 23:45 |
| ← Turl1 left | 23:46 |
| → hobodave joined | 23:46 |
| → k776 joined | 23:52 |
| ← mbroeker left | 23:58 |
| ← hobodave left | 23:59 |