| 2019-03-25 |
| ← jokajak left | 00:03 |
| ← leeN left | 00:03 |
| ← n3wborn left | 00:03 |
| ← finalbeta left | 00:04 |
| ← mescalinum left | 00:04 |
| → justanotheruser joined | 00:05 |
| ← cdown left | 00:05 |
| → nightshift joined | 00:06 |
| → jokajak joined | 00:06 |
|
nightshift
| Is there such a thing as a post-init hook, or any other way that I can enforce editing of the description file? | 00:06 |
|
rafasc
| nightshift: init uses templates. Check the bottom of man git init. | 00:09 |
|
gitinfo
| nightshift: the git-init manpage is available at https://gitirc.eu/git-init.html | 00:09 |
|
nightshift
| thank you. | 00:09 |
| ← mooasaurus left | 00:13 |
| → mooasaurus joined | 00:13 |
| → orbyt_ joined | 00:14 |
|
nightshift
| hmmmmm, not quite what I'm looking for. Looks like I might have to find a way to script it..... | 00:16 |
| → dpyro joined | 00:16 |
| ← Narrat left | 00:18 |
|
nightshift
| Should be a fairly simple bash function, actually. Unless I want to force using git-shell for that user | 00:21 |
| → CCDelivery joined | 00:24 |
| → Beam_Inn joined | 00:29 |
| ← kerframil left | 00:31 |
| ← topdownjimmy left | 00:32 |
| → topdownjimmy joined | 00:33 |
| → kerframil joined | 00:33 |
| ← AtumT left | 00:38 |
| → esran joined | 00:43 |
|
rafasc
| nightshift: what are you trying to do? | 00:43 |
|
nightshift
| rafasc: I want to force the developer to edit the description file when they create a new repository on the server (granted, I know I can't actually make them make changes, but I'd like the file to be opened in an editor) | 00:45 |
|
rafasc
| How are they creating said repositories? | 00:47 |
| → Beam_Inn_ joined | 00:47 |
|
rafasc
| nightshift: You could make a hook that denies pushes to the repository if the description is empty/default... | 00:48 |
|
nightshift
| mkdir and git init via ssh session (that right now runs bash, but, eventually I'd like to switch over to git-shell), on a linux command line only machine | 00:48 |
|
rafasc
| Not sure why you would do that, but you could. | 00:48 |
|
nightshift
| rafasc, this is part of my web based static repo viewer | 00:49 |
| ← Beam_Inn left | 00:50 |
| Beam_Inn_ → Beam_Inn | 00:50 |
|
nightshift
| It utilizes the description to give a short description of the project the repo is for on the main list page | 00:50 |
| → boombatower joined | 00:50 |
| → fstd_ joined | 00:53 |
|
rafasc
| The only way I am thinking is having a ~/git-shell-commands directory , with a script that can change the description, and having a server side hook that denies pushes if the description is empty or is the default one. | 00:55 |
|
| The hook can print information on how to use the custom command to set up the description. | 00:56 |
| ← fstd left | 00:56 |
| fstd_ → fstd | 00:56 |
|
nightshift
| rafsc: thank you, I will explore that option | 00:58 |
| → shabius_ joined | 00:58 |
|
nightshift
| The other way I was considering is a custom command that makes the directory, init's the repo and calls an editor to bring up the file for editing. | 01:00 |
| ← de-facto left | 01:01 |
| → de-facto joined | 01:01 |
| ← shabius left | 01:01 |
|
nightshift
| That doesn't force actual changes, but, if I copy the template directory, I can change the default description file with instructions to place the short description there. The hook would probably be better | 01:02 |
| ← dpyro left | 01:07 |
| ← Inline left | 01:10 |
|
rafasc
| or only init the repository if they have a proper description. That way the hook is not needed. | 01:13 |
|
| If the repo doesn't exist, they can't push. | 01:13 |
|
nightshift
| How would you cancel the init without the description? | 01:14 |
|
| (sorry, I learn better with something resembling a real world problem to fix, so, I'm sure I'm missing some fairly basic linux/scripting knowledge at this point) | 01:15 |
| → fishsource joined | 01:18 |
|
nightshift
| hmmmmmmm, possible idea... make the description as part of the parameters of the custom command, and exit the command if it doesn't exist. | 01:19 |
|
rafasc
| yea, you can ask for the description first and only git init; if you received what you expected. | 01:21 |
| ← Khisanth left | 01:21 |
|
rafasc
| then you can git init, and cp the file into place. For example. | 01:21 |
| ← CCDelivery left | 01:22 |
| → CCDelivery joined | 01:22 |
|
nightshift
| With you using cp to get the file, are you envisioning the user/developer specifying a file location (or, looking for it in the directory), initially creating it in /tmp, or something else? | 01:23 |
| ← nowhere_man left | 01:24 |
|
nightshift
| Just trying to make sure we're kind of on the same page, since I don't have any actual code written for this yet. | 01:25 |
| → sydbarret joined | 01:26 |
| → esrse joined | 01:27 |
| → watabou_ joined | 01:27 |
| → Es0teric joined | 01:31 |
| ← fishsource left | 01:31 |
| → Khisanth joined | 01:34 |
| ← ferdna left | 01:36 |
| ← b7219264_ left | 01:36 |
| → b7219264 joined | 01:36 |
| → ferdna joined | 01:39 |
| ← ferdna left | 01:41 |
| ← watabou_ left | 01:49 |
| → Duikb00t joined | 01:51 |
| ← Duikb00t left | 01:55 |
|
rafasc
| I think for something simple as a quick description, having it as an argument to a git-shell command is fine. | 01:56 |
| ← kreyren left | 01:57 |
|
rafasc
| But that doesn't work so well for long, multi line descriptions. | 01:58 |
|
| I think you can make the script read from stdin, for those cases. | 01:59 |
| ← lankanmon left | 01:59 |
| ← boombatower left | 02:03 |
| → motoko-chan joined | 02:13 |
|
nightshift
| Yeah, seems like most uses for description, including my plan, are less than 80 characters, usually | 02:14 |
| → lankanmon joined | 02:14 |
|
nightshift
| Should probably run the script interactively and pull from stdin, just in case. (If I'm the only one ever using it, I can stress test it to see how long I can let it go as an argument, and just make sure I never go there, but if I release it to the wild, I should assume that people won't read documentation and make it too long) | 02:15 |
| → twb joined | 02:22 |
|
twb
| Should libgit2 be faster than git? | 02:22 |
|
| The slowness appears to be in the blame function; the rest are reasonably fast | 02:24 |
|
rafasc
| twb: are you using windows? | 02:25 |
|
twb
| nope | 02:26 |
|
rafasc
| some things are slower in windows, especially shell-based commands. But blame isn't one of them. | 02:27 |
|
twb
| Here's my actual code: http://ix.io/1Eqy (new, libgit, slow on large codebases) http://ix.io/1xbm (old, fork+exec, fast on large codebases) | 02:27 |
| → watabou_ joined | 02:27 |
|
twb
| With hot disk caches, on a small repo, fork+exec takes 3.189s and libgit2 takes 2.728s | 02:28 |
| ← johnny56 left | 02:28 |
|
twb
| But on a big repo, fork+exec|head takes 0.605s and libgit2|head takes 19.703s | 02:30 |
|
| https://libgit2.org/libgit2/#HEAD/type/git_blame_flag_t | 02:33 |
| → apoos_maximus joined | 02:34 |
|
twb
| I haven't got -M and -C turned on yet, because libgit2 apparently doesn't understand them | 02:34 |
|
rafasc
| where is libgit2 taking the bulk of the time difference? | 02:34 |
|
twb
| Not sure yet, I don't know how to profile the library | 02:34 |
|
| (Note that I'm using it via python3 as well) | 02:35 |
|
rafasc
| I did not review the code, but I would start there. | 02:35 |
|
twb
| I guess I could strace it | 02:35 |
|
Ori_B
| I'd expect a few tens of milliseconds of overhead for forking/execing a process, plus a few microseconds to parse each line of output. | 02:35 |
|
twb
| Yeah I totally concede that fork itself is fast | 02:36 |
|
rafasc
| 19 seconds different is considerable time. | 02:36 |
|
Ori_B
| given that git itself has been beaten on longer, it wouldn't surprise me if more work has been spent optimizing it | 02:37 |
|
| as for the 19s difference in time, you're probably going to have to profile it | 02:37 |
| → fishsource joined | 02:39 |
| ← yyy left | 02:40 |
|
rafasc
| well libgit2 is used by may git hosts, and they have incentives to keep things fast. | 02:40 |
|
twb
| I sort of assumed that libgit2 was the same underlying codebase as git itself | 02:40 |
|
| But maybe that's a dumb assumption | 02:40 |
| ← motoko-chan left | 02:40 |
| → dviola joined | 02:40 |
| → lvns joined | 02:41 |
| ← tombusby left | 02:43 |
| → tombusby joined | 02:43 |
| ← sgn left | 02:44 |
|
rafasc
| dumb? no. Incorrect yes. | 02:45 |
|
twb
| hehe | 02:45 |
|
| can the regular git codebase be used as a C library? | 02:45 |
|
rafasc
| if it could do you think people would bother to code libgit2? | 02:46 |
|
twb
| Maybe if they didn't like the license or something | 02:46 |
| ← kjartan left | 02:47 |
|
rafasc
| I think they're both gplv2 | 02:48 |
|
nightshift
| but, twb, the license is the same as git itself | 02:48 |
|
| give me a second to check something | 02:48 |
|
| twb: my code editor has git integration, I'm trying to check if they use libgit2 or git itself | 02:50 |
|
| nevermind, it uses libgit2, which is weird, because git is also a dependancy | 02:52 |
| → kjartan joined | 02:52 |
|
nightshift
| I think | 02:52 |
| ← lvns left | 02:52 |
| watabou_ → watabou | 02:53 |
| ← F0rTex left | 02:54 |
| → F0rTex joined | 02:55 |
|
twb
| I'm sure emacs magit just fork+execs | 02:58 |
| ← fishsource left | 03:01 |
| ← rafasc left | 03:01 |
|
Ori_B
| it... kind of can, sort of -- see cgit, which I think does that. | 03:02 |
|
| but it's not clean. | 03:02 |
|
twb
| Ori_B: you mean not reentrant? | 03:03 |
|
nightshift
| yeah, I need to dive into the code to see what atom does | 03:03 |
|
twb
| nightshift: atom is basically js, right? How does it even fork+exec, let alone dlopen | 03:04 |
|
Ori_B
| I mean, not particularly stable -- it's including gits internal headers and hoping for the best. | 03:04 |
|
twb
| Ori_B: ah gotcha | 03:04 |
|
Ori_B
| twb: electron supports c++ extensions. | 03:04 |
|
| or rather, node does. | 03:04 |
|
| so, basically, you do it via an ffi | 03:04 |
|
nightshift
| twb: it's built on top of node, yes. That's why I need to dive into it's code. Because it uses libgit2, apparently, but also depends on git | 03:05 |
| → alex_pa joined | 03:05 |
| → fishsource joined | 03:06 |
| ← orbyt_ left | 03:07 |
| → motoko-chan joined | 03:08 |
|
twb
| haha, pygit2's blame methods accepts flags= but never passes them to git | 03:08 |
|
nightshift
| twb: so, is that the source of your slowdown maybe? | 03:09 |
|
twb
| nightshift: I wasn't passing any flags anyways | 03:09 |
|
| I wanted to enable mailmap and -w -M -C, eventually | 03:09 |
|
nightshift
| ah, missed that part | 03:09 |
|
twb
| But those would make it *slower* typically | 03:09 |
| ← CCDelivery left | 03:10 |
|
nightshift
| sorry, I'm getting lost in atom's code. Still can't find why it NEEDS git. So far all the git stuff is passed to gitutils, which uses libgit2 | 03:10 |
| → kadoban joined | 03:10 |
| ← fishsource left | 03:12 |
| ← Dirak left | 03:14 |
| → johnny56 joined | 03:14 |
|
twb
| heh https://github.com/libgit2/libgit2/issues/3027 | 03:20 |
|
| "one of the authors of some of the recent optimizations to Git's blame code has explicitly asked this his work not be included in libgit2." | 03:23 |
| → orbyt_ joined | 03:23 |
|
nightshift
| yeah, guess you have your answer :( | 03:25 |
|
| fyi, I think I just found where atom uses git instead of libgit2, I'm still working through the code to see what they do | 03:26 |
|
twb
| FTR I was running libgit 0.27 and there's a 0.28 available | 03:26 |
| → wcstok joined | 03:27 |
| ← lagothrix left | 03:27 |
| → lagothrix joined | 03:28 |
| ← duderonomy left | 03:28 |
|
nightshift
| That MIGHT help, but, it sounds like they can't just grab newer versions of git's blame code, and they don't have anyone that can/wants to rewrite it though | 03:29 |
|
twb
| Agree | 03:30 |
|
| Kinda weird that people don't see blame as a critical part of git :-) | 03:30 |
|
nightshift
| (and I don't know anywhere near enough js to stare at this and figure out what atom is doing) | 03:30 |
|
twb
| Like, there's no point keeping records of who screwed up if you can't go back and say "see, here is proof, now lash him to the mainmast!" | 03:31 |
|
nightshift
| I think they just don't see it as something to really use outside of git's CLI utilities.... | 03:31 |
| ← z8z left | 03:31 |
|
nightshift
| but, I do know that node allows fork and exec, and when you use those commands, they literally leave the node environment and go to your shell (or, at least they did a couple years ago) | 03:32 |
| ← apoos_maximus left | 03:45 |
| → Dirak joined | 03:47 |
| → Duikb00t joined | 03:52 |
| → dpyro joined | 03:53 |
| ← orbyt_ left | 03:53 |
| ← Duikb00t left | 03:57 |
| ← Es0teric left | 03:57 |
| ← alex_pa left | 03:58 |
| → alex_pa joined | 03:58 |
| ← veegee left | 04:03 |
| → ferdna joined | 04:12 |
| Shentino_ → Shentino | 04:15 |
| ← nightshift left | 04:23 |
| ← nic-hartley left | 04:24 |
| → fishsource joined | 04:25 |
| ← fishsource left | 04:27 |
| → fishsauce joined | 04:27 |
| ← misuto left | 04:32 |
| ← dviola left | 04:34 |
| ← Cabanoss- left | 04:36 |
| → dviola joined | 04:44 |
| → Cabanossi joined | 04:46 |
| → z8z joined | 04:50 |
| ← mowcat left | 05:01 |
| → pks_ joined | 05:01 |
| ← pks left | 05:03 |
| pks_ → pks | 05:03 |
| ← bashfulshell left | 05:03 |
| ← yonder left | 05:11 |
| → duderonomy joined | 05:14 |
| → yonder joined | 05:15 |
| ← dpyro left | 05:15 |
| ← wcstok left | 05:20 |
| → hofmann3900 joined | 05:33 |
| ← thiago left | 05:37 |
| ← GreenJello left | 05:39 |
| ← motoko-chan left | 05:43 |
| → thejunkjon joined | 05:44 |
|
thejunkjon
| is there a way to get a submodule's submodules? | 05:44 |
|
| I do a git pull --recurse-submodules | 05:45 |
|
| and it only seems to do one level | 05:45 |
| ← inkbottle left | 05:45 |
|
_ikke_
| git submodule update --init --recursive | 05:48 |
| ← irqq left | 05:48 |
| → carb0n_ joined | 05:52 |
| → finalbeta joined | 05:55 |
| ← dviola left | 06:06 |
| ← fatalhalt left | 06:08 |
|
thejunkjon
| thanks _ikke_ | 06:19 |
|
| I should probably make that an alias | 06:20 |
| ← NccT left | 06:20 |
| → learningc joined | 06:25 |
| ← learningc left | 06:26 |
| → learningc joined | 06:27 |
| ← sydbarret left | 06:28 |
| ← al-damiri left | 06:30 |
| → shabius joined | 06:31 |
| ← Bobdude left | 06:31 |
| ← shabius_ left | 06:33 |
| → hotbobby joined | 06:43 |
|
hotbobby
| i made a .git to track the mainline linux kernel. when i git pull it says it's up to date but all objects are still in the .git folder, not in the directory i git init'd from | 06:43 |
|
| how can i get a copy of FETCH_HEAD's objects in the directory i git init'd from? | 06:44 |
| ← gxt left | 06:46 |
|
hotbobby
| the data i want is in src/.git/objects/pack and i just want a copy of the repo in src | 06:47 |
| → tsdh joined | 06:47 |
|
hotbobby
| i think i need to specify a branch i want to clone? | 06:50 |
| → SkarmoutsosV joined | 06:56 |
| ← Goplat left | 07:01 |
| → andrzejv joined | 07:04 |
| ← learningc left | 07:05 |
| → learningc joined | 07:06 |
| ← learningc left | 07:06 |
| → learningc joined | 07:07 |
| ← learningc left | 07:07 |
| → learningc joined | 07:08 |
| → chele joined | 07:09 |
| ← learningc left | 07:09 |
| → learningc joined | 07:10 |
| ← learningc left | 07:10 |
| → learningc joined | 07:11 |
| ← learningc left | 07:11 |
|
_ikke_
| hotbobby: How did you create the repository? | 07:13 |
| ← ferdna left | 07:14 |
| → learningc joined | 07:15 |
| ← learningc left | 07:16 |
| → learningc joined | 07:18 |
| ← learningc left | 07:18 |
| → learningc joined | 07:18 |
| → wateriswet joined | 07:18 |
| ← wateriswet left | 07:18 |
| → sQVe joined | 07:19 |
| ← learningc left | 07:19 |
| → wateriswet joined | 07:19 |
| → Es0teric joined | 07:19 |
| → learningc joined | 07:20 |
| ← troyt left | 07:21 |
| → rsrx joined | 07:24 |
| → Duikb00t joined | 07:24 |
| ← gambl0r3 left | 07:29 |
|
learningc
| what is the difference between a detached head and normal head? | 07:32 |
| → dre_ joined | 07:33 |
|
_ikke_
| learningc: a detached HEAD means that HEAD points to a commit in stead of a branch | 07:33 |
|
| Whenever you checkout anything that is not a branch, HEAD will become detached | 07:33 |
| → Makaveli7 joined | 07:36 |
| → mescalinum joined | 07:47 |
| → Noti joined | 07:48 |
| → satifant joined | 07:48 |
| → jas4711 joined | 07:49 |
| → n3wborn joined | 07:50 |
| ← alex_pa left | 07:51 |
| ← Serus left | 07:54 |
|
hotbobby
| _ikke_: git init, git remote add origin https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git | 07:54 |
| ← jelmer left | 07:55 |
|
hotbobby
| then tried things like git clone, git pull, git fetch origin v5.1-rc2 etc | 07:55 |
|
osse
| git fetch downloads stuff. git pull does fetch plus merge, but there is nothing to merge into | 07:56 |
| → oxymoron93 joined | 07:56 |
|
osse
| you probably want to git checkout something | 07:56 |
| ← Duikb00t left | 07:56 |
|
osse
| what you're doing is essentually what clone does, but manually | 07:56 |
|
hotbobby
| checkout will unpack a tag into the directory? | 07:56 |
|
osse
| yes | 07:56 |
|
hotbobby
| i could just git clone $url but then i cant just go to the directory and update it easily | 07:57 |
|
| unless i can clone into the same folder i previously did and it will only grab differences? trying to get around downloading 1.4GB after every commit to mainline | 07:57 |
| → Serus joined | 07:57 |
| → jelmer joined | 07:57 |
|
osse
| sounds like you're misunderstanding git. after a successfull git clone you never use clone again. you use fetch to get updates | 07:58 |
| ← learningc left | 07:58 |
| ← SkarmoutsosV left | 07:58 |
|
hotbobby
| wow! | 07:58 |
|
| that is exactly what i want to do , thank you | 07:59 |
| → learningc joined | 07:59 |
| ← Es0teric left | 08:02 |
|
hotbobby
| how come i can fetch even though there is no .git? meaning how does it know where to fetch from | 08:02 |
|
| ah, config file i see :) | 08:04 |
|
osse
| there is a .git | 08:04 |
|
| git rev-parse --git-dir will show you where it is | 08:04 |
|
hotbobby
| https://pastebin.com/raw/s9s0utGz its a bit different than you said, that command also has no output | 08:05 |
|
oxymoron93
| you are in it | 08:06 |
|
osse
| hotbobby: that command prints "." | 08:06 |
|
| meaning the current directory is the .git directory | 08:06 |
|
hotbobby
| so i need to make a new folder in here then checkout? | 08:06 |
|
osse
| no | 08:07 |
|
| what did you do exactly? | 08:07 |
|
hotbobby
| git clone "mainline kernel url" in a new directory | 08:07 |
|
| the only step | 08:07 |
|
osse
| then you should already have a bunch of files immediately above where you are now | 08:08 |
|
hotbobby
| yes! | 08:09 |
|
| wow ok. sorry, i think i get it now :o | 08:09 |
|
| thanks for being patient and for all of your help | 08:09 |
|
| i can even git status from here even though my .git folder is not even .git, it's accidently the name of the folder i wanted to clone the objects into | 08:11 |
|
osse
| go into where the source code of the kernel is, then run these commands; | 08:12 |
|
| git rev-parse --show-toplevel | 08:12 |
|
| git rev-parse --git-dir | 08:12 |
| → mikecmpbll joined | 08:13 |
|
hotbobby
| https://pastebin.com/raw/PWbEJr7h | 08:14 |
|
| it looks like i have two copies of it | 08:14 |
|
osse
| everything looks normal to me | 08:15 |
|
| source code is at /home/nick/src/linux-mainline-acs/src/linux-mainline-acs and the magic git stuff is in /home/nick/src/linux-mainline-acs/src/linux-mainline-acs/.git | 08:15 |
| ← dre_ left | 08:15 |
|
hotbobby
| so ~/linux-mainline-acs is the copy of the entire repo, and ~/linux-mainline-acs/src/linux-mainline-acs is the latest objects | 08:15 |
|
_ikke_
| The latter is called your working tree | 08:16 |
| → kernel-sanders joined | 08:16 |
|
osse
| hotbobby: the first one is irrelevant | 08:16 |
| → lowbro joined | 08:17 |
|
hotbobby
| oh so i can move the one inside of src/ to where i want it to be all along and delete everything else | 08:18 |
|
osse
| yes | 08:18 |
|
| move the whole directory so that you also move .git with it | 08:18 |
| → Es0teric joined | 08:18 |
|
osse
| mv /home/nick/src/linux-mainline-acs/src/linux-mainline-acs somewhere | 08:19 |
|
hotbobby
| yes, no /* at the end i see | 08:21 |
|
| im happy i have a folder i can git fetch from. ive been downloading the whole thing each time forever.. this will save me a lot of time in the future im very grateful for the walkthrough | 08:22 |
| → mimajof joined | 08:22 |
|
learningc
| _ikke_, but a branch point to the last commit? Or to all commits of that branch? | 08:26 |
| ← Es0teric left | 08:26 |
| → exorades joined | 08:31 |
|
cbreak
| a branch points to a single commit | 08:32 |
| → dege joined | 08:33 |
| ← fishsauce left | 08:39 |
| ← xcm left | 08:41 |
| → xcm joined | 08:43 |
| → JimDungo joined | 08:44 |
| ← st-gourichon-f left | 08:45 |
| → YuGiOhJCJ joined | 08:46 |
| ← jelmer left | 08:47 |
| → staafl_ joined | 08:48 |
| ← rsrx left | 08:48 |
| → rsrx joined | 08:48 |
| → jelmer joined | 08:49 |
| → libertyprime joined | 08:50 |
| → st-gourichon-fid joined | 08:51 |
| → threenuc joined | 08:51 |
| → Es0teric joined | 08:56 |
| → sozuba joined | 08:57 |
| ← Es0teric left | 09:00 |
| → T_UNIX joined | 09:01 |
| ← twb left | 09:01 |
| ← wateriswet left | 09:02 |
| ← kjartan left | 09:04 |
| ← Noti left | 09:05 |
| → fishsauce joined | 09:07 |
| → kjartan joined | 09:09 |
| ← esrse left | 09:16 |
| → wateriswet joined | 09:18 |
| ← yonder left | 09:19 |
| → lembron joined | 09:22 |
| → Lucas_Gray joined | 09:24 |
| ← kerframil left | 09:24 |
| ← Dirak left | 09:25 |
| → clime joined | 09:28 |
| ← learningc left | 09:29 |
|
lembron
| hi there, for-each-ref & merge-base are fudging me... given the following tree: https://i.imgur.com/UkeDvJ8.png -- "known" is 'dev' - worktarget is the 'tarchild-*' tree ||| how can i get "all branchnames in that tree"? ---- merge-base is fine to find master, but then for-each-ref doesnt filter as expected ;/ -- say, contains "newchild" while it shouldnt (--no-merged dev), or also contains | 09:29 |
|
| "oldchild" when going via contains :/ | 09:29 |
| → learningc joined | 09:29 |
| ← thejunkjon left | 09:30 |
| ← learningc left | 09:30 |
| → learningc joined | 09:31 |
|
lembron
| tldr: "get all branches on a tree"? - know my start&end points, "missing leafs (tarchild-two-sub)" would even be okay.... | 09:31 |
|
| so from input "dev + tarchild-tree" -- wanted output: "tarchild-one tarchild-two tarchild-tree" -- and im already happy. | 09:32 |
| ← exorades left | 09:33 |
|
osse
| lembron: what does git for-each-ref --merged tarchild-three --contains $(git merge-base dev tarchild-three) print ? | 09:34 |
| → yyy joined | 09:34 |
| → xcpep joined | 09:36 |
| → hellauer joined | 09:39 |
|
lembron
| osse hm, that seems about right, or better indeed... - still contains "master" (from the mergebase i guess) ill need to filter away - but "tarchild-one tarchild-three tarchild-two" looks better-ish | 09:39 |
| → made2591 joined | 09:40 |
| ← made2591 left | 09:40 |
|
lembron
| order is screwed up, but a lot of the "Junk" is gone indeed =) | 09:40 |
|
osse
| order is probably alphabetic | 09:41 |
| ← mescalinum left | 09:43 |
| → Brilpikk3wyn joined | 09:43 |
| → theoceaniscool joined | 09:44 |
| ← Brilpikk3wyn left | 09:44 |
| → Es0teric joined | 09:44 |
| → mescalinum joined | 09:45 |
| ← duderonomy left | 09:46 |
|
osse
| lembron: you can try specify --no-contains master | 09:46 |
|
lembron
| well, "master" is not a given... just "bad luck" that the merge-base commit sits right there in this case... | 09:47 |
| ← cd left | 09:48 |
| ← Lucas_Gray left | 09:49 |
| → Lucas_Gray joined | 09:49 |
|
osse
| Since it is the merge base it will always be sitting right there, no? | 09:51 |
| ← sozuba left | 09:53 |
| → sozuba joined | 09:53 |
|
lembron
| hm, while the man-page mentions a magic-sort "version:refname" that doesnt seem to have wanted effect ether... | 09:54 |
|
osse
| these names don't exactly follow a version-like scheme | 09:55 |
| → tarkus joined | 09:57 |
| ← Es0teric left | 09:57 |
| ← yyy left | 09:58 |
|
lembron
| can i maybe get "list of commits between two hashes"? - then i could tree-walk them and pick up branches on the way or so... | 09:58 |
| ← AlHafoudh left | 09:59 |
| ← laerte left | 09:59 |
| → Mech0z joined | 09:59 |
| → laerte joined | 09:59 |
|
osse
| git rev-list foo..bar | 09:59 |
|
Mech0z
| I am trying to use BFG to cleanup some big files from my repo, but my push to a new repository is being rejected by bitbucket "remote: You are attempting to update refs that are reserved for Bitbucket's pull request functionality. Bitbucket manages these refs automatically, and they may not be updated by users. remote: Rejected refs: remote: refs/pull-requests/2/from" | 10:00 |
|
| I have found https://community.atlassian.com/t5/Bitbucket-questions/Bitbucket-reserved-refs-when-cleaning-up-with-BFG-tool/qaq-p/702969 | 10:00 |
|
| which states I ahve to run "git show-ref | cut -d' ' -f2 | grep 'pull-request' | xargs -r -L1 git update-ref -d" but that dont seem to work on windows, is there a similar command for that for windows | 10:01 |
|
osse
| lembron: branches point to commits, not the other way around, so you cannot exactly "pick up" branches that way. | 10:01 |
|
Mech0z
| grep seems like a unix command | 10:01 |
|
osse
| you'd have to check which branches point to that commit, for each commit | 10:01 |
| ← laerte left | 10:01 |
| ← bebbet left | 10:02 |
| → bebbet joined | 10:03 |
| ← lankanmon left | 10:03 |
| → laerte joined | 10:04 |
| → yuriii joined | 10:04 |
| → apoos_maximus joined | 10:05 |
| → exorades joined | 10:07 |
| → kapil____ joined | 10:08 |
|
osse
| Mech0z: you should be able to run that command from Git Bash | 10:09 |
|
| Mech0z: other than that, on windows there's a program called findstr that works basically the same way | 10:09 |
| ← fishsauce left | 10:10 |
|
Mech0z
| osse git bash works | 10:10 |
| ← z8z left | 10:26 |
| ← wateriswet left | 10:27 |
| ← exorades left | 10:28 |
| ← mikecmpbll left | 10:30 |
| ← finalbeta left | 10:30 |
| → Noti joined | 10:30 |
| → finalbeta joined | 10:30 |
| → rocketmagnet joined | 10:37 |
|
rocketmagnet
| hi everyone, how can i get the hash of a certain repo/tag ? | 10:38 |
| ← hellauer left | 10:38 |
|
_ikke_
| rocketmagnet: what do you mean with repo/tag? | 10:38 |
| → exorades joined | 10:39 |
|
rocketmagnet
| i need the hash of a repo with the tag 5.1.2 | 10:39 |
|
_ikke_
| Do you have that repo locally? | 10:39 |
|
rocketmagnet
| no | 10:39 |
|
_ikke_
| git ls-remote <remote-url> refs/tags/5.1.2 | 10:40 |
|
rocketmagnet
| gives me no output | 10:41 |
|
jast
| then that tag doesn't exist in that remote repository | 10:41 |
|
_ikke_
| git ls-remote <remote-url> | grep -F 5.2.1 | 10:41 |
|
rocketmagnet
| git ls-remote https://github.com/qt/qt5.git refs/tag/5.1.2 gives me no output | 10:42 |
|
jast
| btw if it's an annotated tag, this will give you the hash of the tag object, not the hash of the tagged commit) | 10:42 |
|
osse
| rocketmagnet: you're missing the v in front of the tag | 10:42 |
|
jast
| the tag is called v5.1.2, not 5.1.2 | 10:42 |
|
rocketmagnet
| ah ok | 10:42 |
|
| still no output | 10:42 |
| → User_ joined | 10:43 |
|
rocketmagnet
| git ls-remote https://github.com/qt/qt5.git refs/tag/v5.12 gives me no output | 10:43 |
|
jast
| oh, there is no 5.1.2 | 10:43 |
|
osse
| rocketmagnet: now you're missing the .0 at the end | 10:43 |
|
jast
| 5.12.0 doesn't exist, either (still in beta) | 10:43 |
|
rocketmagnet
| no output =( | 10:44 |
|
jast
| the newest stable tags are v5.11.2 and v5.9.7 | 10:44 |
|
osse
| works here | 10:44 |
|
| git ls-remote https://github.com/qt/qt5.git refs/tags/v5.12.0 | 10:44 |
|
jast
| oh, huh... works for me too, but doesn't show up in the web interface | 10:44 |
| ← n3wborn left | 10:44 |
|
osse
| v5.12.2 is out, even | 10:44 |
|
jast
| oh never mind, I was doing dumb things in the web interface | 10:45 |
|
| anyway, you can just view all the tags in your browser, it shows you the commit info, too: https://github.com/qt/qt5/tags | 10:45 |
| → wateriswet joined | 10:45 |
|
rocketmagnet
| git ls-remote https://github.com/qt/qt5.git refs/tag/v5.12.0 gives me no output | 10:45 |
|
jast
| refs/tags, not refs/tag | 10:46 |
| ← learningc left | 10:47 |
|
rocketmagnet
| thanks | 10:47 |
| ← hyperair left | 10:47 |
|
rocketmagnet
| when i've checked out 5.11.0, how to make git checkout 5.12.0 ? | 10:48 |
| ← jelmer left | 10:48 |
|
jast
| just insert the missing 'v' and you should be good (you may need to run 'git fetch' to make sure your local repo's metadata is up-to-date) | 10:49 |
| → jelmer joined | 10:49 |
|
rocketmagnet
| in the repo dir: git fetch v5.12.0 gives me an error telling me that's not an git repo | 10:50 |
|
_ikke_
| Just git fetch | 10:50 |
|
rocketmagnet
| but i need 5.12.0 | 10:50 |
|
| v5.12.0 | 10:50 |
|
_ikke_
| git fetch will fetch everything that is available | 10:50 |
|
jast
| are you sure you have a repo clone there, or is it just an unpacked archive maybe? | 10:50 |
|
_ikke_
| ah right, that's the first issue | 10:51 |
|
jast
| oh, my bad | 10:51 |
|
| yeah, 'git fetch' without arguments | 10:51 |
|
| error confused me for a bit :) | 10:51 |
|
_ikke_
| heh | 10:51 |
| ← User_ left | 10:53 |
| → made2591 joined | 10:55 |
|
rocketmagnet
| thanks | 10:55 |
| ← tarkus left | 10:57 |
| → yyy joined | 10:58 |
| → irqq joined | 10:59 |
| ← made2591 left | 11:00 |
| ← JimDungo left | 11:05 |
| ← threenuc left | 11:05 |
| ← Noti left | 11:07 |
| → emsjessec joined | 11:08 |
| → mikecmpbll joined | 11:08 |
|
clime
| is it possible to get "easily" parsable list of HEAD commit hashes of submodules for particular commit in the superproject? | 11:09 |
| → Noti joined | 11:10 |
|
clime
| e.g. git submodule gives me +<HEAD hash> <path to submodule> <something> | 11:13 |
|
| but i need the latest HEAD in a submodule that _has_ been committed already | 11:14 |
| ← cbreak left | 11:15 |
| → cbreak joined | 11:16 |
| → lankanmon joined | 11:16 |
|
jast
| clime: git ls-tree -r <commit> | grep commit | 11:17 |
|
clime
| oh ls-tree | 11:17 |
|
jast
| yeah, the submodule commit hash is stored inside the tree object for that path | 11:18 |
| ← exorades left | 11:18 |
| ← Makaveli7 left | 11:18 |
|
clime
| jast: great thanks | 11:20 |
| ← tombusby left | 11:25 |
| → tombusby joined | 11:25 |
| ← apoos_maximus left | 11:26 |
| → exorades joined | 11:27 |
|
clime
| i assume i can also use git ls-tree -r <commit> | grep 160000 | 11:27 |
| ← YuGiOhJCJ left | 11:28 |
| → cdown joined | 11:30 |
| ← F0rTex left | 11:31 |
| → F0rTex joined | 11:33 |
|
jast
| clime: sure - but I don't think it has any advantage | 11:34 |
|
| if you want to be sure there are no false positives, I guess grepping for ^160000 is better | 11:34 |
|
clime
| right | 11:41 |
| ← mescalinum left | 11:44 |
| → mescalinum joined | 11:44 |
| → tarkus joined | 11:45 |
|
osse
| that won't work for recursive submodules though | 11:48 |
|
clime
| osse: they have different mode? | 11:48 |
|
| or they do not appear in the list at all...? | 11:48 |
|
| probably the latter | 11:49 |
|
osse
| yes the latter | 11:49 |
| ← SCHAAP137 left | 11:49 |
|
lembron
| hmpf, im not getting on a golden tree there... when all i want is having a simpler "rebase that whole tree" command than doing it one-by-one... https://github.com/nornagon/git-rebase-all kinda gets close-"ish", but tries to hack that via some merge and then breaks itself ;D | 11:49 |
|
| "octomerge doesnt survive the rebase" seems to be the main curlpit - but there are some more issues with that branch discovery there it seems... (getting ALL childs inc. master and dev themself, so that octomerge is super-havoc), manually shifting fixes the first, but leaves the octo-issue | 11:52 |
|
clime
| ok, that's fun | 11:52 |
|
| so i need to basically do DFS/BFS search on submodules (until i reach the one i am looking for) | 11:52 |
|
| in bash | 11:52 |
| → SCHAPiE joined | 11:54 |
|
clime
| lol, ok | 11:54 |
| → threenuc joined | 11:56 |
| ← laerte left | 11:56 |
|
jast
| lembron: that seems rather unreliable... it would fail whenever one of the branches is made redundant by the changes in the upstream branch | 11:56 |
| → laerte joined | 11:56 |
| → Mattiaslndstrm joined | 11:56 |
|
jast
| I don't think it makes any sense to do this, anyway | 11:57 |
|
| it doesn't really reduce the number of conflicts you have to address, or anything | 11:57 |
|
lembron
| "sense" = upstream is ff-only -- so everythign HAS to be pulled up to "dev" -- usecase https://i.imgur.com/UkeDvJ8.png | 11:58 |
|
jast
| honestly I think I'd just do something similar but loop over the branches instead of trying to do it all at once | 11:58 |
|
| I have no idea how that is related to what I said ;) | 11:58 |
|
lembron
| > similar and loop --- kinda... guess the nice thing with the octomerge there is that it uses that as marker for "--continue" and such - and would -technically- make it work with the sub-forks too -- what would go a bit ham in a simple "for branch ontop of next; do..." | 12:02 |
| ← threenuc left | 12:05 |
| → SkarmoutsosV joined | 12:05 |
| → threenuc joined | 12:06 |
| → elichai2 joined | 12:09 |
|
elichai2
| Hey, I have branch 1 that contains commit A, branch 2 that contains A->B, and 3 with A->B->C, now I added to branch 1 the commit W so now it's A->W, I rebased branch 2 ontop of 1 (A->W->B), how do I rebase branch 3 ontop of 2? | 12:11 |
|
| if I just rebase will it give me B twice? | 12:11 |
| → stamina joined | 12:11 |
| → apoos_maximus joined | 12:12 |
|
ashnur
| morning. i have branch from which i would like to merge everything apart from a specific users' changes under a specific directory path. how can I do that? I saw how to do either separately on stackoverflow (directory with merge then checkout, and author with cherry pick) but I can't find a way that's probed and documented that would do both at once | 12:12 |
|
elichai2
| Do I must create a new branch from 2 and cherry pick 3? | 12:13 |
|
oxymoron93
| `git rebase --onto=branch2 branch3~ branch3` should do the job elichai2 | 12:17 |
|
elichai2
| and replace `branch3~` with the oldest commit that is special to branch3? | 12:17 |
| ← Lucas_Gray left | 12:20 |
| → Lucas_Gray joined | 12:21 |
|
oxymoron93
| elichai2: <oldest commit necessary to rebase>~ , mind the tilde | 12:21 |
|
elichai2
| because it's exclusive? | 12:21 |
|
oxymoron93
| for example in your case, running `git log branch3~..branch` only lists C | 12:21 |
|
| which is the only commit you want to rebase | 12:22 |
|
elichai2
| ha, thanks, cool feature | 12:22 |
| ← styler2go left | 12:24 |
| ← rwb left | 12:25 |
| ← rocketmagnet left | 12:25 |
| ← Muzer left | 12:27 |
| ← jim left | 12:28 |
|
elichai2
| I'll make some sort of nice alias/wrapper to this because I have tons of subfeatures | 12:28 |
| → jim joined | 12:28 |
| → WhiskerBiscuit joined | 12:29 |
|
oxymoron93
| elichai2: as usual https://git-scm.com/docs/git-rebase there are nice graphical presentation of various "rebases" | 12:30 |
| → Muzer joined | 12:32 |
|
ashnur
| so, i am thinking that from the branch that has the changes i need i create a new branch, and I checkout everything under the directory that I don't want to change just partially. then from the original changes branch i cherry pick the commits from the authors whose changes i need | 12:40 |
|
| i can't seem to find anything simpler :( and i am not even sure this will work but something has to :D | 12:40 |
|
| i found git-filter-branch too but the docs scare me :D | 12:44 |
| ← threenuc left | 12:45 |
|
oxymoron93
| yup, `git fitler-branch` seems like a job for this, but I also never used it... so yeah, you can play after all, make some backups if needed :) | 12:45 |
|
ashnur
| I started with the backup :D I am an old git (ab)user :D | 12:46 |
| ← WhiskerBiscuit left | 12:50 |
| → SerialSmile joined | 12:51 |
| → nic-hartley joined | 12:54 |
| ← R2robot left | 12:54 |
| ← wateriswet left | 12:55 |
| ← kapil____ left | 12:57 |
| ← Raed left | 13:02 |
| → fury joined | 13:02 |
| ← tarkus left | 13:02 |
| → shabius_ joined | 13:03 |
| ← rsrx left | 13:03 |
| → wateriswet joined | 13:04 |
| → Raed joined | 13:05 |
| ← libertyprime left | 13:06 |
| ← shabius left | 13:06 |
| ← Mech0z left | 13:07 |
| → howell joined | 13:10 |
| ← exorades left | 13:13 |
| → fishsauce joined | 13:15 |
| ← fishsauce left | 13:16 |
| ← kjartan left | 13:17 |
| → WhiskerBiscuit joined | 13:18 |
| → exorades joined | 13:19 |
| → kjartan joined | 13:19 |
| → R2robot joined | 13:19 |
| → supernov1h joined | 13:20 |
| → CalebT joined | 13:20 |
| ← justanotheruser left | 13:21 |
|
CalebT
| Hey guys, I have a design question. How can you support continuous development (i.e., you don't commit code that you know isn't ready for production) while also supporting features for integrators (i.e., you have feature_a that integrator_a is also working on; you need to allow integrator_a to test feature_a with their system befor pushing it to production) | 13:22 |
|
osse
| CalebT: branches | 13:23 |
|
_ikke_
| CalebT: The premise that in order to support CD you cannot commit is false | 13:23 |
|
osse
| CalebT: replace "don't commit code that you know isn't ready for production" with "don't commide code that you know isn't ready for production to master" | 13:24 |
|
_ikke_
| s/commit/merge | 13:24 |
|
osse
| both work | 13:24 |
|
CalebT
| Yeah we intend to use branches, my concern is where the environment for each of those will live | 13:25 |
|
| So we have a "primary" trunk that goes dev -> stable -> prod and we have environments that support those and are expected to be "clean" of features, yea? | 13:25 |
| ← stkirk left | 13:26 |
|
CalebT
| How do we then support branches with known not-prod-ready features? Should ever feature have it's own ephemeral environment that can come up and down? Can everyone work off the same "feature" environment? | 13:26 |
|
osse
| CalebT: what kind of software are we talking about? | 13:26 |
|
CalebT
| So my team writes and maintains a central service (gaming company) | 13:27 |
|
| Our "clients" are the game teams, making new games and integrating features into their game | 13:27 |
|
| So we provide like achievements, matchmaking, etc., to the games | 13:27 |
|
| My concern with the hand wavy "feature branches will solve everything" answer is that we need a way for those features to be tested by "external" teams | 13:28 |
|
jast
| so am I understanding this correctly, you need your clients to be able to test non-ready features but the test instances need to run on your infrastructure? | 13:29 |
|
CalebT
| The only way I can see us doing that without spending a boatload of money for resources is to have a single dedicated "feature" environment -- but it will have work from multiple features and be integrated into by multiple game devs | 13:29 |
| ← exorades left | 13:29 |
|
CalebT
| Yes, we don't currently have a way to run all of our services locally (some services depend on cloud resources to function fully) | 13:30 |
|
jast
| each environment has substantial overhead, I guess? | 13:31 |
|
| each environment you're running in parallel, that is | 13:31 |
|
CalebT
| Each environment costs about $1300/mo. at rest | 13:31 |
|
jast
| dang | 13:31 |
|
CalebT
| indeed | 13:31 |
|
jast
| well, I suppose it's probably a bad idea to have multiple versions of the code run in the same environment | 13:31 |
|
| unless your application is designed to be able to deal with that | 13:32 |
| → subopt joined | 13:32 |
|
CalebT
| Yeah we can't really do that, everything deployed would have to be whatever is in that branch (no way to deploy multiple sets of code to the same environment) | 13:34 |
|
jast
| I think if there's a good solution it would depend very much on the specifics of how your system works -- generally speaking I don't think there's a straightforward way to do this without basically giving clients time slices on one of your environments | 13:34 |
|
CalebT
| Yeah, I kind of think the only way to keep our main trunk clean is to have either (a) ephemeral environments that can quickly come up and go down with little effort, or (b) have a single "feature" environment that's completely split off from the main trunk, and that's where all new feature work goes to be tested by the game devs | 13:35 |
| → scrote joined | 13:36 |
|
CalebT
| We'd played with the idea that we could put a "integration" environment in our main trunk somewhere, but in my mind that breaks CD? | 13:36 |
|
scrote
| hello. | 13:36 |
| → mowcat joined | 13:36 |
|
scrote
| I have project with a detached HEAD. how do I point it to master? | 13:36 |
|
osse
| scrote: how did you become detached? | 13:36 |
| → justanotheruser joined | 13:36 |
|
scrote
| This project was given to me. | 13:37 |
|
jast
| CalebT: if it means different code, at the very least it would seem like a terrible hack :) | 13:37 |
|
| scrote: if you haven't committed on top of the detached HEAD, or at least nothing you'd like to keep, simply 'git checkout master' | 13:37 |
|
_ikke_
| scrote: git checkout master | 13:37 |
|
scrote
| ok thanks. | 13:38 |
|
oxymoron93
| and to inspect whether you have modified changes or not run: `git status` | 13:38 |
|
jast
| though depending on how someone else messed it up for you, there might be a rebase or merge in progress | 13:38 |
|
CalebT
| jast: It wouldn't necessarily be different, it'd just be introducting a step in our development pipeline that requires explicit user intervention and testing before going any higher | 13:38 |
|
jast
| CalebT: if it's a different branch I think, in terms of repo structure, that's probably okay. the problem: basically if you have a test environment and merge a combination of changes there to test them, there is a small risk that merging a different combination to your stable/production branch will behave differently | 13:40 |
| ← supernov1h left | 13:40 |
|
jast
| I think of it as patch algebra: if you test a combination of two patches but deploy only one, there is no way to know for certain that the one will work on its own (without fully understanding the effects of both of them, which is a tall order) | 13:41 |
|
| deploy = move forward in the pipeline | 13:41 |
| → mescalin_ joined | 13:42 |
| ← justanotheruser left | 13:42 |
| ← carb0n_ left | 13:43 |
| ← mescalinum left | 13:43 |
|
CalebT
| I agree, yeah - it's hard to see this being an ideal workflow without truly ephemeral environments for each feature. I know this is a solved problem, I just don't know what that solution is. Like I'm sure Facebook doesn't have every developer spin up a dedicated environment to test their changes before commiting to the main dev trunk | 13:43 |
|
osse
| CalebT: I would aim for (a) here. VMs and such? | 13:43 |
| → sergmartidi joined | 13:43 |
| → jungsubk joined | 13:43 |
|
CalebT
| (a) is ideal, I agree - it's just a challenge to make environments easily spun up and tore down at will | 13:44 |
|
jast
| it is... but it has many advantages :) | 13:48 |
|
| where I work we use local VMs like crazy and if we wanted, we could easily set up public instances based on arbitrary versions, too | 13:49 |
|
osse
| throw longshoremen at the prolem | 13:49 |
|
| *problem | 13:49 |
| → learningc joined | 13:50 |
| → bsanford joined | 13:53 |
| ← sergmartidi left | 13:53 |
|
CalebT
| The other problem there is that will take 6 months or more of effort to get working. So until then, we need a bandaid of sorts | 13:56 |
|
| Can anyone think of a major issue with having a dedicated "feature" environment (so an environment that would have multiple feature_x branches deployed to it at any given time) -- and if a feature needs to be tested with the external team prior to hitting our main trunk (dev -> stable -> prod), it gets deployed there | 13:57 |
|
| I know it's not *ideal*, but are there any super major issues I should try to account for in that workflow? | 13:57 |
| → shabius joined | 13:57 |
| → jottr joined | 13:58 |
| → rafasc joined | 14:00 |
| ← shabius_ left | 14:00 |
| ← Beam_Inn left | 14:05 |
| ← bsanford left | 14:06 |
| → kgirthofer joined | 14:08 |
| → m1sosoup joined | 14:08 |
|
kgirthofer
| morning - why when I do git branches -a I get a nice list of all the branches, but if I do branches=$(git branch -a) it also includes the files in the current directory? | 14:08 |
|
oxymoron93
| what is `git branches` ? | 14:10 |
|
osse
| kgirthofer: because you don't quote $branches when printing it | 14:10 |
|
oxymoron93
| aha right | 14:11 |
|
kgirthofer
| ah rad | 14:11 |
|
| thanks | 14:11 |
|
rafasc
| because git branches was never meant to be parsed. | 14:11 |
|
| use for-each-ref instead. | 14:11 |
|
kgirthofer
| oh perfect | 14:11 |
|
| thanks rafasc | 14:11 |
| ← mattcen left | 14:14 |
|
rafasc
| $git for-each-ref refs/remotes refs/heads, for the branches -a equivalent. | 14:14 |
| ← sandlotasn left | 14:15 |
| → mattcen joined | 14:17 |
| → Es0teric joined | 14:21 |
| ← Es0teric left | 14:21 |
| → Es0teric joined | 14:24 |
| → Silenced joined | 14:27 |
| → slothtrop joined | 14:29 |
| → sbeyer joined | 14:31 |
| ← slothtrop left | 14:32 |
| ← matheustavares left | 14:32 |
| ← loc left | 14:33 |
| ← nic-hartley left | 14:34 |
| → voidSurfr joined | 14:34 |
| ← CalebT left | 14:34 |
| → toothlessg joined | 14:35 |
| → oojacoboo joined | 14:37 |
| → loc joined | 14:38 |
|
clime
| i am using this to get the current branch name: basename "$(git symbolic-ref HEAD )" ... anyone knows a better/different method? | 14:40 |
|
osse
| git symbolic-ref --short HEAD | 14:40 |
|
clime
| osse: thanks | 14:41 |
| → matheustavares joined | 14:41 |
|
benharri
| git rev-parse --abbrev-ref HEAD | 14:41 |
|
| should work too | 14:41 |
|
clime
| benharri: thx | 14:42 |
|
benharri
| not sure if one is preferred over the other | 14:43 |
| ← foo left | 14:43 |
|
rafasc
| clime: ask again in a couple of days, and the answer will be probably git branch --show-current; | 14:44 |
|
clime
| rafasc: cool, i will ask in about half a year when i have the new git ;) | 14:44 |
|
| no offense | 14:45 |
|
rafasc
| https://github.com/git/git/blob/041f5ea1cf987a4068ef5f39ba0a09be85952064/Documentation/RelNotes/2.22.0.txt#L25 | 14:45 |
|
clime
| alright that will be quite soon then :) | 14:46 |
|
| \o/ | 14:46 |
| → spacesuitdiver joined | 14:46 |
|
rafasc
| although, it lives in a gray area, in regards of being ok for script use. | 14:47 |
| ← Lucas_Gray left | 14:47 |
| ← learningc left | 14:50 |
| → Lucas_Gray joined | 14:52 |
| → exorades joined | 14:52 |
| → Puffball joined | 14:52 |
| ← exorades left | 14:54 |
|
jast
| for scripts I'd use one of the existing ones | 14:54 |
| → exorades joined | 14:55 |
| → bluezone joined | 14:55 |
|
rafasc
| I think that's the most sensible. | 14:56 |
| ← mattcen left | 14:58 |
| → Wryhder joined | 14:58 |
| ← Lucas_Gray left | 14:59 |
| Wryhder → Lucas_Gray | 14:59 |
| ← SerialSmile left | 15:00 |
| ← kgirthofer left | 15:01 |
| ← johnstonf left | 15:02 |
| → CodeSlingerPaul joined | 15:02 |
| ← subopt left | 15:03 |
| → tang^ joined | 15:06 |
| → mattcen joined | 15:08 |
| → exorades_ joined | 15:09 |
| ← exorades left | 15:10 |
| ← Lucas_Gray left | 15:10 |
| → threenuc joined | 15:11 |
| → Lucas_Gray joined | 15:11 |
| ← deltam left | 15:13 |
| → Regon joined | 15:13 |
| → deltam joined | 15:14 |
| → Makaveli7 joined | 15:15 |
| ← Noti left | 15:18 |
| → nic-hartley joined | 15:18 |
| ← Lucas_Gray left | 15:18 |
| → Lucas_Gray joined | 15:19 |
| ← clime left | 15:21 |
| ← spacesuitdiver left | 15:23 |
| ← oxymoron93 left | 15:24 |
| → inkbottle joined | 15:25 |
| → rocketmagnet joined | 15:27 |
|
rocketmagnet
| hi everyone | 15:28 |
|
rafasc
| hi rocketmagnet! | 15:28 |
|
rocketmagnet
| when i want to revert my hole repository to a certain commit, how can i do that ? | 15:28 |
|
rafasc
| !undo | 15:28 |
|
gitinfo
| [!fixup] So you lost or broke something or need to otherwise find, fix, or delete commits? Look at http://sethrobertson.github.com/GitFixUm/ for full instructions, or !fixup_hints for the tl;dr. Warning: changing old commits will require you to !rewrite published history! | 15:28 |
|
rafasc
| !revert | 15:29 |
|
gitinfo
| That's a rather ambiguous question... options: a) make a commit that "undoes" the effects of an earlier commit [man git-revert]; b) discard uncommitted changes in the working tree [git reset --hard]; c) undo committing [git reset --soft HEAD^]; d) restore staged versions of files [git checkout -p]; e) move the current branch to a different point(possibly losing commits)[git reset --hard $COMMIT]? | 15:29 |
| → sydbarret joined | 15:29 |
| → robertparkerx joined | 15:30 |
| ← jottr left | 15:31 |
| ← WhiskerBiscuit left | 15:32 |
| → WhiskerBiscuit joined | 15:32 |
|
rocketmagnet
| hmm git reset commit-id does not work | 15:34 |
|
| i want the hole repo to be in the same state as it where when i commited | 15:35 |
| ← wateriswet left | 15:36 |
| → jottr joined | 15:36 |
|
rafasc
| with or without discarding local changes? | 15:36 |
| → czart joined | 15:37 |
|
rocketmagnet
| i don't need the changes | 15:37 |
|
rafasc
| then follow option e) | 15:37 |
|
| It will delete any uncommitted work without possibility of recovery. | 15:38 |
|
| So, be sure that's what you want. | 15:38 |
| ← exorades_ left | 15:39 |
| → exorades joined | 15:40 |
| ← Mattiaslndstrm left | 15:41 |
| ← mescalin_ left | 15:44 |
| → dviola joined | 15:45 |
| → mescalinum joined | 15:47 |
| ← Lucas_Gray left | 15:48 |
| ← andrzejv left | 15:49 |
| → AtumT joined | 15:49 |
| → Lucas_Gray joined | 15:51 |
| ← esotericnonsense left | 15:52 |
| → gracecr joined | 15:53 |
| → dpyro joined | 15:54 |
| ← threenuc left | 15:54 |
| ← dpyro left | 15:55 |
| ← Lucas_Gray left | 15:57 |
| → GreenJello joined | 15:57 |
| → yaoxu joined | 16:07 |
| → gambl0r3 joined | 16:09 |
| → egovirus joined | 16:10 |
| ← sQVe left | 16:11 |
| ← SkarmoutsosV left | 16:12 |
| → jakogut joined | 16:15 |
| → aako__ joined | 16:17 |
| ← egovirus left | 16:17 |
| → fatalhalt joined | 16:19 |
| → renich joined | 16:19 |
| ← renich left | 16:20 |
| → subopt joined | 16:21 |
| → renich joined | 16:21 |
| ← renich left | 16:22 |
| → durham joined | 16:23 |
| → Mattiaslndstrm joined | 16:23 |
| → renich joined | 16:23 |
| ← yaoxu left | 16:28 |
| ← durham left | 16:28 |
| → yaoxu joined | 16:28 |
| ← yaoxu left | 16:29 |
| → yaoxu joined | 16:29 |
| ← eegad left | 16:30 |
| ← jungsubk left | 16:31 |
| → DaGoaty joined | 16:32 |
| → jungsubk joined | 16:32 |
| ← DaGoaty left | 16:33 |
| → DaGoaty joined | 16:33 |
| ← gambl0r3 left | 16:34 |
| → Envil joined | 16:37 |
| → iam730 joined | 16:39 |
| → causa_sui joined | 16:41 |
| ← dviola left | 16:42 |
| → esotericnonsense joined | 16:45 |
| ← robertparkerx left | 16:45 |
| → boombatower joined | 16:47 |
|
wadadli
| what do I pass to user.signingkey | 16:47 |
|
| the sig or the keygrip? | 16:47 |
| ← aako__ left | 16:48 |
| ← yaoxu left | 16:48 |
| → egovirus joined | 16:48 |
| ← cdown left | 16:49 |
| → robertparkerx joined | 16:50 |
| ← esotericnonsense left | 16:50 |
|
wadadli
| ah the fingerprint | 16:50 |
|
rafasc
| wadadli: have you read the documnentation of it? | 16:50 |
|
| "... you may specify a key using any method that gpg supports." | 16:50 |
| → orbyt_ joined | 16:51 |
| ← sweatsuit left | 16:51 |
| → blackandblue joined | 16:51 |
|
wadadli
| OH :P | 16:51 |
| ← chele left | 16:52 |
| → z1haze joined | 16:52 |
| → duderonomy joined | 16:52 |
| ← Jackneill left | 16:52 |
|
z1haze
| im trying to squash down a branch into a single commit because it will be a lot easie to merge in -- but the developer merged another branch in a while back and it seems that im unable to squash beyond that point | 16:52 |
|
| can anyone help me out? | 16:52 |
|
rafasc
| z1haze: I think your expectation is broken. Squashing a branch doesn't make it easier to merge in. | 16:53 |
|
z1haze
| well it helps me | 16:54 |
|
| instead of fixing conflicts in commits, i fix them in 1 commit | 16:54 |
|
wadadli
| broken expectations. RIP. | 16:54 |
|
z1haze
| i do it all the time so i mean what helps me may not help you, doesnt make it broken | 16:54 |
|
rafasc
| z1haze: with merge you only fix them in 1 commit. The merge commit. | 16:55 |
|
z1haze
| is there a reason though i cannot squash a merge commit | 16:55 |
| → Jackneill joined | 16:55 |
| → Inline joined | 16:56 |
|
z1haze
| rafasc, yeah, but when rebasing you have to step through every commit | 16:56 |
|
| so i want this branch to be rebased before its merged, and i prefer only having to rebase a single commit instead of 50 | 16:57 |
| ← lowbro left | 16:57 |
|
rafasc
| z1haze: when you merge changes, git tries to find a common parent and merge the changes since then. In other words, the squash is not picking up past changes because those changes are probably already merged in. | 16:57 |
| → nowhere_man joined | 16:57 |
| ← orbyt_ left | 16:57 |
| → sweatsuit joined | 16:57 |
|
z1haze
| so there's really no way to get past this merge commit to continue squashing? | 16:57 |
|
| i guess can explain the actual issue, but its not really complicated -- there is a feature branch that has been worked on for a long time, but its very diverged, and there a tons of conflicts | 16:58 |
|
| im trying to get that branch rebased onto master to get it up to date, but there are so many conflicts the rebase is hell | 16:58 |
| ← nic-hartley left | 16:59 |
|
z1haze
| so i normally just create a new branch and squash the commits, then rebase the squashed branch and handle the conflicts 1 time | 16:59 |
| → nic-hartley joined | 16:59 |
| → thiago joined | 17:04 |
|
rafasc
| I assumed you were using merge --squash, If you are using rebase you can just try making the branch as you do, then use git rebase -i <COMMIT>; where commit is the parent of the first commit you squash. Then s/pick/fixup/. | 17:05 |
|
| after that you will end up with a single commit you can try to merge, cherry-pick, or even rebase again on top of the desired target. | 17:06 |
| ← nowhere_man left | 17:06 |
|
rafasc
| you can do it in one go, $git rebase --interactive --onto target COMMIT long-lived-branch-to-be-squashed. | 17:07 |
| → gambl0r3 joined | 17:13 |
| ← yyy left | 17:13 |
|
z1haze
| rafsac i do, but it doesnt let me on a merge commit for some reason | 17:13 |
| ← jakogut left | 17:14 |
| ← hahuang65 left | 17:17 |
|
rafasc
| !errors | 17:17 |
|
| or maybe !situation | 17:18 |
|
gitinfo
| Please post the url returned by `git log -n 20 --all --graph --format="%h %p %d %s" | curl -F text=@- https://upaste.de/` to give us an idea about what your situation is (increase the -n argument if your problem is more complex than 20 commits can explain) | 17:18 |
|
rafasc
| rebase flattens history, So you probably seeing a side effect of that. | 17:19 |
| → jakogut joined | 17:19 |
| ← Silenced left | 17:21 |
| → al-damiri joined | 17:24 |
| ← sunri5e left | 17:25 |
| ← kjartan left | 17:27 |
| → beefjoe joined | 17:27 |
| → sunri5e joined | 17:27 |
|
z1haze
| so what's after <<<< is the current commit and after ==== is the previous commit, right? | 17:28 |
| → Tweth-U-PDS joined | 17:28 |
| → kjartan joined | 17:29 |
| ← m1sosoup left | 17:29 |
|
rafasc
| keep in mind that due how rebase works, the sides of the conflict may look like they're swapped. | 17:30 |
| ← xcm left | 17:32 |
|
Tweth-U-PDS
| I'm having an issue, and wondering if it's user error... log shows the LAST commit added a function (via a merge), but that function is not in the source file. Or is there some kind of obscure merge-bug I've hit? *confused* | 17:32 |
|
rafasc
| z1haze: why don't you try a --squash merge? Because that's your end goal right? Just having a single commit on top of master? | 17:32 |
| → xcm joined | 17:32 |
|
z1haze
| that is the end goal - am just unfamiliar | 17:33 |
|
| ill try it | 17:33 |
| ← exorades left | 17:33 |
|
rafasc
| z1haze: git checkout master; git merge --squash otherbranch; fix conflicts, git merge --continue; | 17:34 |
|
z1haze
| well definitely dont want to merge into master | 17:34 |
| → esotericnonsense joined | 17:34 |
|
z1haze
| but i get your point | 17:34 |
|
rafasc
| git checkout -b not-master master; git merge --squash otherbranch; ;) | 17:35 |
|
z1haze
| ya, lol i understand | 17:35 |
| ← mikecmpbll left | 17:36 |
| ← Tweth-U-PDS left | 17:37 |
| → stennowork joined | 17:37 |
|
stennowork
| good day, assuming that i have a remote repository, how can i merge a tag (say, 3.1.4) into my local branch? | 17:38 |
|
| i tried: git merge oro/3.1.4 but it tells me that it is not something we can merge | 17:38 |
|
| 'oro' is the name of the remote repo | 17:38 |
|
rafasc
| git fetch --tags; git merge 3.1.4; | 17:38 |
|
| that will fetch all tags from 'oro' into your tags though. | 17:39 |
|
stennowork
| ah thanks, strange | 17:39 |
|
| it worked | 17:39 |
|
rafasc
| stennowork: tags unlike branches do not get namespaced. | 17:40 |
|
| So when you used oro/3.1.4, it tried to merge a remote branch named 3.1.4, which doesn't exist. | 17:41 |
|
stennowork
| gotcha | 17:41 |
| → rsrx joined | 17:41 |
|
rafasc
| another way you could've done it without polluting your local tag namespace would be to fetch the tag directly into a branch. | 17:41 |
|
stennowork
| git fetch 3.1.4 ? | 17:41 |
| ← fstd left | 17:42 |
|
rafasc
| git fetch oro refs/tags/3.1.4:refs/heads/my-3.1.4 | 17:42 |
| → fstd joined | 17:42 |
|
stennowork
| hmm i see | 17:42 |
| → opalepatrick joined | 17:42 |
| → wootehfoot joined | 17:43 |
| ← mescalinum left | 17:44 |
|
bhelgaas
| is there a way to have "git send-email --compose" include a diffstat in the cover letter template? i know about "git format-patch --stat", but i'd like to do this in one step instead of "format-patch + send-email" | 17:48 |
| → nowhere_man joined | 17:49 |
| ← Mattiaslndstrm left | 17:49 |
| → mescalinum joined | 17:49 |
|
Hello71
| why not | 17:50 |
|
| you can write a script to do it if you want | 17:51 |
| → orbyt_ joined | 17:51 |
| → Mattiaslndstrm joined | 17:51 |
|
Hello71
| also I'm pretty sure you can pass --stat to send-email if you also pass a rev-list | 17:51 |
|
| according to the man page | 17:51 |
|
| man git-send-email | 17:52 |
|
gitinfo
| the git-send-email manpage is available at https://gitirc.eu/git-send-email.html | 17:52 |
| ← gracecr left | 17:52 |
| → gracecr joined | 17:52 |
| → Dirak joined | 17:52 |
| ← orbyt_ left | 17:56 |
| → _gracecr_ joined | 17:57 |
|
bhelgaas
| i don't see "--stat" mentioned on the man page, and "git send-email --compose --stat master" doesn't work for me (2.21.0.392) | 17:57 |
| → made2591 joined | 17:57 |
| ← gracecr left | 17:57 |
|
rafasc
| --stat will work, but will add it as annotations (after --- of each patch). | 17:57 |
|
| bhelgaas: try git send-email --annotate --cover-letter --stat <revision> | 18:00 |
|
| The trick is asking format-patch to write the cover-letter for you. | 18:01 |
| → cliluw joined | 18:02 |
| ← made2591 left | 18:02 |
| → Sasazuka joined | 18:04 |
|
bhelgaas
| rafasc: aah, that's perfect, thank you! it's quite embarrassing how long i spent looking for something like that :) | 18:04 |
| → threenuc joined | 18:04 |
| ← xcm left | 18:05 |
| → xcm joined | 18:05 |
| ← thiago left | 18:05 |
| → thiago joined | 18:05 |
| ← beefjoe left | 18:06 |
| ← elichai2 left | 18:08 |
| → TomyLobo joined | 18:08 |
| ← DaGoaty left | 18:10 |
| ← Chex left | 18:11 |
| → kreyren joined | 18:11 |
| ← threenuc left | 18:13 |
| ← mimajof left | 18:16 |
| ← irqq left | 18:16 |
| ← robertparkerx left | 18:16 |
|
jrnieder
| rafasc, bhelgaas: patch to Documentation/git-send-email.txt please? ;-) | 18:16 |
| → SkarmoutsosV joined | 18:17 |
| ← dysfigured left | 18:18 |
| → dysfigured joined | 18:19 |
| ← sauvin left | 18:24 |
| → mescalin_ joined | 18:25 |
| ← mescalinum left | 18:26 |
| ← stennowork left | 18:27 |
| → [rg] joined | 18:33 |
|
[rg]
| can I merge an untracked file and a staged file | 18:33 |
| ← causa_sui left | 18:37 |
| → hahuang65 joined | 18:40 |
|
rafasc
| [rg]: you can make temporary copies of them and use git merge-file; something like: git cat-file blob :0:LICENSE; can be used to retrieve the staged version. | 18:40 |
| → xmate joined | 18:40 |
| ← jottr left | 18:40 |
| → orbyt_ joined | 18:41 |
|
[rg]
| ok | 18:41 |
|
| thanks mate | 18:41 |
| ← xcm left | 18:42 |
|
rafasc
| merge-file needs a common ancestor, the file at HEAD is probably the right one. | 18:42 |
| → xcm joined | 18:43 |
|
Kobaz
| i'm on the 2.0 branch, and the master branch is behind, is there a way to 'git pull' without doing a checkout and switching to master | 18:44 |
| → mikecmpbll joined | 18:46 |
|
rafasc
| [rg]: git merge-file LICENSE <(git cat-file blob HEAD:LICENSE) <(git cat-file blob :0:LICENSE); if your sell supports process substitution. | 18:46 |
| ← cliluw left | 18:47 |
| → nightshift joined | 18:47 |
| → cliluw joined | 18:48 |
| ← cliluw left | 18:49 |
| → causa_sui joined | 18:49 |
| → cliluw joined | 18:50 |
|
rafasc
| jrnieder: what do you think failed here? git-send-email.txt not being clear about supporting format-patch options, or --compose/--annotate not mentioning it can compose messages generated by --cover-letter? I figured the solution of the problem, but I have trouble putting it into words in english. | 18:51 |
| → CCDelivery joined | 18:51 |
|
rafasc
| Kobaz: !pull | 18:51 |
|
gitinfo
| Kobaz: pull=fetch+merge (or with flags/config also fetch+rebase). It is thus *not* the opposite of push in any sense. A good article that explains the difference between fetch and pull: http://longair.net/blog/2009/04/16/git-fetch-and-merge/ | 18:51 |
| ← CCDelivery left | 18:52 |
|
rafasc
| you can just fetch now, and merge the next time you checkout master. Merge needs a worktree to work, so you need to check it out. | 18:53 |
| ← _gracecr_ left | 18:53 |
| → made2591 joined | 18:53 |
| → yyy joined | 18:53 |
| → _gracecr_ joined | 18:53 |
|
rafasc
| One workaround is to add a new $git worktree; and do the pull there. worktree allows having multiple branches checked out simultaneously. | 18:54 |
| ← WhiskerBiscuit left | 18:55 |
| ← nic-hartley left | 18:55 |
| → plexigras joined | 18:56 |
|
Kobaz
| k, that's what i figured | 18:56 |
| ← xmate left | 18:56 |
| ← xcm left | 18:57 |
| → nic-hartley joined | 18:57 |
| → xcm joined | 18:57 |
| ← Mattiaslndstrm left | 18:58 |
| ← devster31 left | 18:59 |
| ← made2591 left | 18:59 |
| ← pks left | 19:00 |
| ← T_UNIX left | 19:00 |
| ← orbyt_ left | 19:01 |
| → rossome joined | 19:03 |
| → devster31 joined | 19:03 |
| → lucasb joined | 19:04 |
| → pks joined | 19:04 |
| → v0lksman joined | 19:07 |
| → DisruptiveNL joined | 19:07 |
|
v0lksman
| I've made a merge on a remote system. now I want to clone my repo over that remote again to bring it back to sync with my master repo. Is that possible without deleting the directory structure? Like can I just issue the clone command again and it will overwrite the changed files? | 19:08 |
| ← theoceaniscool left | 19:08 |
| ← subopt left | 19:10 |
|
yoh
| _ikke_: what else should/could I try about my problem with Bad file descriptor on NFS mounted partition? I've tried already with --threads=1, and --max-pack-size=100M -a -d | 19:10 |
| → subopt joined | 19:11 |
| ← subopt left | 19:12 |
| ← sydbarret left | 19:14 |
| → borkr joined | 19:15 |
| → tarkus joined | 19:16 |
|
rafasc
| v0lksman: you clone the repository once, then pull to update it. | 19:17 |
|
v0lksman
| rafasc: yeah but I made a bunch of changes that I don't want to keep but they are staged for commit. How can I roll that back without deleting and re-cloning...I can't reset I don't think cause I have history built up due to the merge (this is all isolated though. I didn't share that or push/pull it) | 19:19 |
|
_ikke_
| yoh: Why do you think those kind of options would solve thie issue? | 19:19 |
| → jottr joined | 19:19 |
|
jrnieder
| rafasc: most likely an example in the EXAMPLES section would take care of it | 19:19 |
|
_ikke_
| yoh: what basically happens is: fd = open(...); write(fd) -> EBADF | 19:20 |
|
| You open a file, try to write to it, system complains | 19:20 |
| → Phylock joined | 19:20 |
| → threenuc joined | 19:20 |
| ← yyy left | 19:21 |
| → yyy joined | 19:21 |
| ← rsrx left | 19:21 |
| ← nowhere_man left | 19:23 |
|
tarkus
| Q: What would be the easiest way to get date from the last commit? show -s --format=?? ... I need it to generate app version number such as 2019.03.25.4fa80b3 | 19:24 |
| → Mattiaslndstrm joined | 19:26 |
|
v0lksman
| reset | 19:26 |
| → acercle joined | 19:26 |
|
v0lksman
| that's what I was looking for | 19:26 |
|
jrnieder
| tarkus: check out "git help describe" | 19:26 |
|
yoh
| _ikke_: I was just checking anything possible and others reported possibly addressing similar issues in the past | 19:27 |
|
jrnieder
| tarkus: for extracting information from a commit, check out "git diff-tree -s --always --format=%s HEAD" | 19:28 |
|
yoh
| _ikke_: I see that all those .git/objects/pack/tmp_pack_* 0-sized files are read-only (write bit is not set) | 19:28 |
| → irqq joined | 19:28 |
|
yoh
| is that normal? umask is 022 | 19:28 |
| → libertyprime joined | 19:29 |
|
yoh
| touching a file there makes it writeable. So I wonder how it turns readonly? | 19:29 |
|
| clarifiction: touching a NEW file there makes it writeable | 19:30 |
|
_ikke_
| yoh: Does it only happen on an nfs share? | 19:30 |
| ← mattcen left | 19:31 |
|
tarkus
| git show -s --format="%cd+%t" --date=format:"%Y.%m.%d" | 19:33 |
| ← Envil left | 19:35 |
| → mattcen joined | 19:36 |
| ← jungsubk left | 19:36 |
| ← mikecmpbll left | 19:37 |
| ← emsjessec left | 19:38 |
| ← jottr left | 19:39 |
|
yoh
| _ikke_: well -- it only happens for that repo. I have others, and I think I am not experiencing the same behavior. But this one might be the largest. but let me check | 19:40 |
| → duncan1 joined | 19:40 |
|
yoh
| _ikke_: crap - got kicked out again. might take awhile to get back on it, but I will check | 19:40 |
| ← libertyprime left | 19:42 |
| → jungsubk joined | 19:42 |
| ← cliluw left | 19:43 |
| ← logithack left | 19:43 |
| ← czart left | 19:44 |
| → logithack joined | 19:44 |
| → cliluw joined | 19:47 |
| → jstimm joined | 19:50 |
| ← [rg] left | 19:51 |
| → cdown joined | 19:51 |
| → jottr joined | 19:53 |
| ← causa_sui left | 19:53 |
| → cdown_ joined | 19:53 |
| → dviola joined | 19:54 |
| ← cdown left | 19:56 |
| cdown_ → cdown | 19:56 |
|
rafasc
| What is a good idea for tracking changes meant to go into a release-notes.txt? Keeping them in PRs, is not ideal as reverting a branch will revert the changelog. But keeping it separate is kind of a burden to maintain. The best I can come up is storing them as git-notes on the merge commits. But I am wondering how people deal with this. | 19:56 |
|
_ikke_
| rafasc: what is wrong with reverthing changes to the changelog when reverting a branch? Doesn't reverting the branch mean the change in the changelog should be undone as well? | 19:57 |
|
nightshift
| I'm curious how that is handled too | 19:57 |
| ← jottr left | 19:57 |
|
rafasc
| past entries shouldn't change. If I add a feature on 1.0, but revert it on 2.0, the revert should not remove the 'added feature from 1.0' | 19:58 |
| → orbyt_ joined | 19:59 |
|
_ikke_
| I usually tend to create the release notes seperately | 20:01 |
|
| I think jch has a system for that as well | 20:01 |
| → causa_sui joined | 20:01 |
|
nightshift
| _ikke_ I think that's what rafasc is asking about, what is your process for creating the release notes? | 20:01 |
| ← apoos_maximus left | 20:02 |
| → Revan- joined | 20:02 |
|
_ikke_
| nightshift: I just create the right before creating a release | 20:02 |
|
| but my releases are usually not that big | 20:02 |
|
rafasc
| but what do you use to keep track of all of it? Just git log --merges? | 20:02 |
|
_ikke_
| yes | 20:03 |
|
nightshift
| that was the missing part, the git log --merges part | 20:03 |
| ← orbyt_ left | 20:03 |
|
rafasc
| That requires neat history.. Which sometimes doesn't exist. | 20:04 |
|
| I've been thinking about suggesting writting them as git notes... That I could compile when a release were to be made. | 20:05 |
| → libertyprime joined | 20:06 |
|
rafasc
| _ikke_: So you compile it with git log --merges, and add it on the commit the version bump is made? | 20:06 |
|
_ikke_
| usually in a release branch | 20:06 |
|
rafasc
| I still would like to have release-notes decoupled from commit messages. More often than not, commit messages are more relevant to other developers than for final users. | 20:08 |
|
| But I still didn't find a robust way to keep track of them. | 20:08 |
| ← Dirak left | 20:09 |
| ← bket left | 20:11 |
| → bket joined | 20:14 |
| ← meLon left | 20:15 |
| → m0viefreak joined | 20:15 |
| → Dirak joined | 20:15 |
|
Hello71
| tor uses a series of separate changes files, then merges them together at release time with a script | 20:15 |
|
meejah
| twisted split off their tool, called "towncrier" now (individual file for each bug/feature/etc) merged into changelog at release time (similar to Tor) | 20:16 |
|
| rafasc: so, "use towncrier" might be a solution (it's a python tool, and still somewhat tied to "whatever twisted's workflow was") | 20:17 |
| ← nic-hartley left | 20:17 |
|
Hello71
| I don't see anything wrong with the system, but it's a little bit complex | 20:17 |
|
meejah
| on the plus side, you get "definitely a changelog note" on each branch, but don't pay the price with "definitely a conflict in ChangeLog" | 20:19 |
| → PettanShoutaKun joined | 20:21 |
|
PettanShoutaKun
| if I delete my index.lock would that ruin my merges being able to see that they had related histories? | 20:21 |
| → sydbarret joined | 20:22 |
| → courrier joined | 20:23 |
| ← duncan1 left | 20:23 |
| → Essadon joined | 20:25 |
| → [rg] joined | 20:25 |
|
PettanShoutaKun
| right now I'm trying to merge with origin master after doing a jenkins checkout. We delete the lock file and I'm trying to figure out if that's why this is failing the merge because of unrelated histories or if it's totally unrelated | 20:25 |
| ← causa_sui left | 20:25 |
| → kerframil joined | 20:26 |
| ← mescalin_ left | 20:26 |
|
rafasc
| meejah: I've actually stumbled over that tool when looking around what people might be doing. Seems similar to my approach with git-notes, the only difference being the place the "news" fragments are stored. (working tree vs notes) | 20:27 |
|
nightshift
| PettanShoutaKun: I don't have an index.lock in any of my repositories | 20:27 |
|
rafasc
| PettanShoutaKun: the index.lock is there to make you don't have multiple things interacting with the index. | 20:28 |
|
PettanShoutaKun
| So it probably wouldn't mess with merging at all? | 20:28 |
| → mescalinum joined | 20:28 |
|
rafasc
| if you hava a index.lock, probably means git crashed. In which case, the index state might be corrupted. | 20:28 |
| → gxt joined | 20:29 |
| ← jungsubk left | 20:31 |
| ← PettanShoutaKun left | 20:33 |
| ← _gracecr_ left | 20:35 |
| → orbyt_ joined | 20:35 |
| ← toothlessg left | 20:35 |
| → meLon joined | 20:38 |
| ← jelmer left | 20:39 |
| ← courrier left | 20:39 |
| ← nightshift left | 20:39 |
| → jelmer joined | 20:40 |
| ← opalepatrick left | 20:41 |
| → n3wborn joined | 20:42 |
| → YuGiOhJCJ joined | 20:46 |
| ← gambl0r3 left | 20:46 |
| → gambl0r3 joined | 20:47 |
| → causa_sui joined | 20:47 |
| ← YuGiOhJCJ left | 20:49 |
| ← blackandblue left | 20:52 |
| ← meLon left | 20:52 |
| ← gambl0r3 left | 20:53 |
| → gambl0r3 joined | 20:54 |
| → minimal_life joined | 20:58 |
| → meLon joined | 21:00 |
| ← orbyt_ left | 21:00 |
| ← tarkus left | 21:00 |
| ← mescalinum left | 21:00 |
| ← minimal_life left | 21:01 |
| ← meLon left | 21:04 |
| → tarkus joined | 21:04 |
| ← [rg] left | 21:05 |
| → meLon joined | 21:05 |
| ← yyy left | 21:05 |
| ← kerframil left | 21:06 |
| → limarfrek joined | 21:06 |
| ← meLon left | 21:06 |
| limarfrek → kerframil | 21:06 |
| → orbyt_ joined | 21:09 |
| → nic-hartley joined | 21:11 |
| ← gxt left | 21:19 |
| → learningc joined | 21:19 |
| ← acercle left | 21:19 |
| → gxt joined | 21:19 |
| → greatgatsby joined | 21:21 |
| → cd joined | 21:21 |
| → subopt joined | 21:24 |
| → justanotheruser joined | 21:28 |
| ← threenuc left | 21:29 |
| → User_ joined | 21:31 |
| → User__ joined | 21:32 |
| ← DisruptiveNL left | 21:32 |
| ← finalbeta left | 21:33 |
| → finalbeta joined | 21:33 |
| ← learningc left | 21:33 |
| ← User_ left | 21:35 |
| ← sydbarret left | 21:37 |
| ← kjartan left | 21:37 |
| ← xcm left | 21:39 |
| → exorades joined | 21:39 |
| → kjartan joined | 21:39 |
| ← exorades left | 21:41 |
| ← voidSurfr left | 21:42 |
| → xcm joined | 21:42 |
| → exorades joined | 21:43 |
| → yyy joined | 21:44 |
| ← howell left | 21:46 |
| ← orbyt_ left | 21:46 |
| ← lightstalker left | 21:47 |
| ← rocketmagnet left | 21:48 |
| → sydbarret joined | 21:54 |
| ← dviola left | 21:55 |
| → meLon joined | 21:56 |
| ← Makaveli7 left | 21:58 |
| ← b7219264 left | 21:59 |
|
bambams
| With git-filter-branch, does it not support multiple index-filter options at once? Or would I need to execute say 10 commands to remove 10 files completely from history? | 21:59 |
| → b7219264 joined | 21:59 |
| ← hofmann3900 left | 22:00 |
|
canton7
| bambams, many of the things you can pass to index-filter will work on multiple files in the same command | 22:00 |
|
rafasc
| bambams: git rm can use multiple arguments. | 22:00 |
|
| so wherever you have git rm file; you can use git rm fileA fileB in/directory/fileC ; etc... | 22:01 |
| → dviola joined | 22:01 |
| ← esotericnonsense left | 22:03 |
| ← borkr left | 22:04 |
|
bambams
| Hmmm, yeah. I think I tried that, but was confused when it didn't do as I expected. I'll keep wrestling it some. | 22:06 |
| ← colwem left | 22:08 |
| ← exorades left | 22:08 |
| → sentriz joined | 22:10 |
|
osse
| bambams: --index-filter 'cmd1 && cmd2' maybe? | 22:13 |
|
| or --index-filter myscript | 22:13 |
| → sharkboy joined | 22:17 |
| subopt → _subopt_in_repos | 22:18 |
| ← Muzer left | 22:18 |
| ← sharkboy left | 22:18 |
| → sharkboy joined | 22:21 |
| ← User__ left | 22:21 |
| ← plexigras left | 22:22 |
| ← Regon left | 22:22 |
| ← dviola left | 22:23 |
| ← sozuba left | 22:24 |
| → lightstalker joined | 22:27 |
| ← wootehfoot left | 22:29 |
| → bashfulshell joined | 22:29 |
| ← gambl0r3 left | 22:35 |
| ← cbreak left | 22:36 |
| → assemblyman joined | 22:36 |
| → cbreak joined | 22:37 |
| → PtxDK joined | 22:41 |
| → veegee joined | 22:42 |
| → Muzer joined | 22:45 |
| ← oojacoboo left | 22:46 |
| ← thiago left | 22:58 |
| ← tarkus left | 22:58 |
| → thiago joined | 23:01 |
| ← Celelibi left | 23:09 |
| → spacesuitdiver joined | 23:10 |
| ← jelmer left | 23:16 |
| ← gusnan left | 23:16 |
| → jelmer joined | 23:17 |
| ← kreyren left | 23:17 |
| → kreyren joined | 23:23 |
| → violentE joined | 23:25 |
| ← sharkboy left | 23:27 |
| ← AtumT left | 23:29 |
| ← ewitz left | 23:33 |
| → Celelibi joined | 23:34 |
| ← Phylock left | 23:36 |
| ← spacesuitdiver left | 23:36 |
| → spacesuitdiver joined | 23:37 |
| → mikecmpbll joined | 23:39 |
| ← TomyLobo left | 23:42 |
| ← thiago left | 23:42 |
| → gambl0r3 joined | 23:43 |
| ← spacesuitdiver left | 23:44 |
| ← tang^ left | 23:45 |
| ← m0viefreak left | 23:48 |
| ← markus-k left | 23:48 |
| ← SkarmoutsosV left | 23:50 |
| ← egovirus left | 23:56 |