IRCloggy #git 2021-08-02

Logs Search ←Prev date Next date→ Channels Documentation

Provider of IRC logs since 2005.
WARNING: As Freenode became unjoinable and lost all warnings in topics, we cannot log channels on Freenode anymore.

2021-08-02

jstein left00:08
shokohsc left00:12
shokohsc joined00:13
m0viefreak left00:23
adlternative joined00:30
magic_ninja left00:43
magic_ninja joined00:44
hmmmas joined00:50
hmmmas left00:51
Null_A left00:59
gnoo joined01:08
jaggz joined01:10
Null_A joined01:13
physikoi joined01:14
christall left01:16
christall joined01:17
PaMeDa joined01:18
apauli left01:19
physikoi left01:22
foureyes left01:40
keypushe- joined01:52
keypusher left01:52
keypushe-keypusher01:55
zebrag joined01:57
AnAverageHuman left02:09
AnAverageHuman joined02:10
jwillikers left02:11
finn_elija joined02:20
FinnElija left02:20
finn_elijaFinnElija02:20
pizdets left02:38
pizdets_ joined02:38
hmmmas joined02:56
Gurkenglas left03:13
ham left03:15
ham2 joined03:16
Xatenev joined03:16
Xatenev left03:16
Xatenev joined03:16
Xatenev left03:16
zebrag left03:28
apauli joined03:29
jhulten left03:30
saroy joined03:30
PaMeDa left03:32
thiago joined03:34
jhulten joined03:35
cdown left03:38
jhulten left03:40
thiago_ joined03:42
thiago_ left03:43
amosbird joined03:52
thiago left03:53
thiago joined04:04
vicfred joined04:05
jhulten joined04:05
Null_A left04:09
adamts left04:10
Null_A joined04:19
AnAverageHuman left04:22
jhulten left04:25
thekingofbandit1 left04:34
subopt left04:35
vicfred left04:38
thekingofbandit joined04:38
PaMeDa joined04:42
apauli left04:43
thiago left04:49
jazzy joined04:50
ash_worksi joined04:50
hgl- left04:54
hgl joined04:54
nwoob joined04:56
nwoob I have a branch named as "CS1-T1161-Move-Garmin-Statistics-Pace-(DEV)" without quotes04:57
when I checkout to it I am moved to a detached head with commit sha, instead of branch. COuld someone please explain to me why that happens04:57
hmmmas left05:03
nwoob ok, I got it i added origin/branch-name. that's why05:04
Null_A left05:08
apauli joined05:10
PaMeDa left05:11
nwoob left05:14
thiago joined05:14
JanC_ joined05:19
Guest7058 joined05:20
thiago left05:21
JanC left05:21
JanC_JanC05:21
nwoob joined05:24
Guest7058 Hello, I'd like to ask ,What's the best way to learn git for the first time?05:24
Guest7058nndwn05:26
PaMeDa joined05:27
ikke !book05:29
gitinfo There are several good books available about git; 'Pro Git' is probably the best: http://git-scm.com/book but also look at !bottomup !cs !gcs !designers !gitt !vcbe and !parable05:29
apauli left05:29
ash_worksi left05:32
nndwn haha i dont know this ebook is free , thanks05:33
nndwn left05:36
ikke .trigger_edit book There are several good books available about git; 'Pro Git' is probably the best: https://git-scm.com/book but also look at !bottomup !cs !gcs !designers !gitt !vcbe and !parable05:38
gitinfo ikke: Okay.05:38
ash_worksi joined05:40
nyah left05:40
ferdna left05:41
jhulten joined05:44
PaMeDa left05:45
PaMeDa joined05:47
jhulten left05:49
jhulten joined05:54
shlomif joined05:57
jhulten left05:59
hbautista left06:00
t3nj1n left06:03
mike joined06:03
gnooooo joined06:04
mikeGuest151206:04
gnoo left06:05
arcatech left06:08
nasamuffin left06:19
pcarphin left06:20
Lord_of_Life_ joined06:22
palasso joined06:22
mat001 joined06:23
Lord_of_Life left06:23
Lord_of_Life_Lord_of_Life06:23
filePeter joined06:25
pcarphin joined06:30
diverdude left06:33
diverdude joined06:48
AbleBacon left06:55
sysh joined07:01
rfuentess joined07:03
pulse left07:04
unluckyshrubbery left07:04
t3nj1n joined07:05
nwoob left07:07
YuGiOhJCJ joined07:14
EvilDMP left07:15
EvilDMP joined07:16
hgl left07:22
hgl joined07:22
pcarphin left07:27
pcarphin1 joined07:28
jmcantrell joined07:28
EvilDMP left07:30
theoceaniscool joined07:36
EvilDMP joined07:38
saroy left07:39
saroy joined07:40
EvilDMP left07:43
randomuser joined07:47
t3nj1n left07:48
mat001 left07:51
randomuser left07:52
saroy left07:53
lessless left07:57
EvilDMP joined07:58
lessless joined07:58
skapata left08:05
theoceaniscool left08:09
Samian left08:12
ykrons joined08:15
jmcantrell left08:15
zeenk joined08:17
jmcantrell joined08:17
BenjiProd joined08:18
saroy joined08:19
Vonter left08:19
another|another08:20
anotheranother|08:20
randomuser joined08:21
theoceaniscool joined08:21
Guest6611 left08:22
Murr left08:22
nwoob joined08:22
Murr joined08:22
Vonter joined08:23
keypusher left08:25
randomuser left08:26
randomuser joined08:26
keypusher joined08:28
rahl joined08:29
chmark96 left08:29
chmark96 joined08:29
gnooooo left08:30
rahl left08:30
chmark96 left08:32
birkoff joined08:32
birkoff left08:32
birkoff joined08:32
AnapodoPsalidaki joined08:33
Helmholtz How to gitignore all png except those which exist withing every `data/` dir?08:36
ikke Does *.png; !data/*.png work?08:36
gitinfo [!database_schema] Changing database schemas is a very complicated topic. Some reading: http://thedailywtf.com/Articles/Database-Changes-Done-Right.aspx08:36
madewokherd left08:37
ikke ignore gitinfo here08:37
gnooooo joined08:38
Helmholtz ikke, thanks08:39
that ; is insignificant right? I can just use 2 lines?08:39
ikke yes08:39
It's just a way of me specifying 2 rules in a single line here08:39
randomuser left08:42
gnooooo left08:43
ash_worksi I thought I solved this question but I realized I did not08:47
fossdd left08:48
fossdd joined08:48
ash_worksi so I was thinking, I might have a backend project where a dev messes around and wants to create it his own changes to the database; I figure they can commit their local migrations to their branch and then a dba can pull it and check it out and make an offical migration08:49
what I'd like though is for projects to have an up-to-date schema for their dev databases08:49
and I thought "oh well, the dba needs access to the project to begin with, so the can just dump the files in there and commit the project08:49
but then I realized, "oh, but if you have multiple projects (microservices) using the database, then the dba would have to commit the files to each project"08:50
I know this could be solved with a database-per-service, but right now, that's not feasible. Can I have a repo inside a repo where a dev can pull the latest changes to the database?08:51
geirha !submodule08:52
gitinfo git-submodule is ideal to add subsidiary git repositories to a git superproject when you do not control the subprojects or more specifically wish to fix the subproject at a specific revision even as the subproject changes upstream. See http://www.git-scm.com/book/en/Git-Tools-Submodules08:52
avu left08:53
ash_worksi at the moment, the docker setup per project houses the microservice "app" in it's own directory (so for 'flipr' like flipr/app/src, flipr/app/Dockerfile, etc...) and each "fake" infrasture service in it's own directory (flipr/db/docker-entrypoint-initdb.d/schema.sql)08:53
thanks geirha08:54
avu joined08:54
hnOsmium0001 left08:56
ash_worksi left09:00
fossdd left09:03
fossdd joined09:04
gnoo joined09:04
unluckyshrubbery joined09:05
randomuser joined09:06
Betal left09:10
natrys joined09:13
fossdd left09:15
tejr left09:17
gnoo left09:20
chexum left09:20
chexum joined09:20
gnoo joined09:21
jmcantrell left09:22
mbalmer joined09:27
randomuser left09:30
securethemews joined09:30
tejr joined09:31
randomuser joined09:34
randomuser left09:42
gnoo left09:45
Gurkenglas joined09:51
extor left09:56
jmft2 left10:11
jmft2 joined10:11
jmft2 left10:11
nwoob left10:15
BenjiProd left10:20
BenjiProd joined10:20
extor joined10:21
Wuzzy joined10:29
igemnace left10:33
Guest70 left10:35
sudoforge left10:46
pulse joined10:49
YuGiOhJCJ left10:50
manveru joined10:52
manveru hi folks, i'm trying to figure out a good way to fix a race condition for `git init` when two or more inits for the same directory run at the same time, copying the templates will fail because it already exists10:55
jwillikers joined10:56
manveru i guess i'll have to work around that myself using flock or the like, or is there some hidden option in git that makes this just work? :)10:57
geirha mkdir could also serve as a lock. mkdir repo && git init repo10:58
if dir already exists, mkdir fails and it won't attempt git init10:58
adlternative left11:00
manveru hmm, i guess that'd be a bit more cross-platform that flock, yeah11:00
Gurkenglas Is there a way to annotate two branches as being different by merely a refactoring, which should have the meaning that they "have the same behavior" and merging any branch onto both should preserve this?11:01
osse there's no way to annotate tags at all beside their names11:05
annoate branches I mean11:06
Helmholtz Can I ask a github question? Can I watch a repo for new commits?11:08
securethemews Helmholtz, you can use the RSS feed i think11:12
https://github.com/<user>/<repo>/commits/<branch>.atom11:15
Helmholtz securethemews, thanks.11:21
srinidhi left11:22
darkbit joined11:32
osse nesmysl: what's your usecase for renaming the remote?11:32
I just removed the artificial cosntraint and now all of a sudden I have to justify it11:32
jwillikers left11:35
rfuentess left11:40
rfuentess joined11:46
saroy left11:48
varaindemian joined11:50
reprazent left11:54
jast osse: it's basically a clone of git://git.kernel.org/pub/scm/git/git-htmldocs.git11:54
reprazent joined11:59
shailangsa left12:00
roadie joined12:01
shailangsa joined12:15
TomyWork joined12:19
mat001 joined12:19
jast Helmholtz: github supports webhooks for repo updates, which means you can connect your repo to notification services etc.12:20
take a look at the repo settings12:20
Helmholtz jast, does it work for a repo in which I don't own12:20
jast only if the owner will set it up for you12:21
AnAverageHuman joined12:23
Maxattax left12:26
m0viefreak joined12:26
Maxattax joined12:29
CarloWood joined12:31
Guest1512 left12:32
CarloWood Hi, I am totally stuck again and can't find the answer online :/. I have two remotes 'origin' (remote) and 'github' (what I use). The upstream author (origin) now added a new branch 'fix' that he wants me to test.12:33
But I can't find out how to get it and check it out locally :/12:33
jast if you don't need it in your github remote just yet, the easiest way is: git fetch origin; git checkout fix12:33
CarloWood git fetch --all12:33
didn't get it12:33
jast hm, possibly your remote is setup to fetch a subset of refs? check with: git config remote.origin.fetch12:34
CarloWood Looking at my history, I did that - and it gave the error that 'fix' is unknown12:34
+refs/heads/main:refs/remotes/origin/main12:34
jast yeah, that's the issue12:35
replace 'main' with '*' twice (easiest to just edit .git/config)12:35
CarloWood main? I am not even using main.. I use master12:35
Oh, I am using main here :/12:35
well12:35
jast yeah, it's been github's default for a while now12:35
CarloWood I am getting too tired of politics to go along with it even in my coding projects.12:36
jast I don't exactly follow the reasoning behind it, but it's not really a big deal in practice12:36
if you init repos by pushing something from your local repo you can just use your own default12:36
shailangsa left12:36
reprazent left12:37
CarloWood It's because next to the n-word we now also have the m-word. I'll just ignore everything, people are crazy these times.12:38
jast btw this kind of fetch setup is used if you pass --single-branch or --depth during the initial clone12:38
the wildcard version is the default12:38
CarloWood I dunno how it got this way :/12:38
He has a lot of branches (I guess), and I suppose I didn't want to fetch them all. I was just interested in main.12:39
jast it's even worse in Germany where some people want to genderify many descriptive nouns for groups/positions of people, because German historically used a generic masculine form for many of these12:39
yeah, makes sense12:40
adamts joined12:40
CarloWood There is little sanity left in the world; people are seeing things everywhere that do not exist (only in their heads) and make a HUGE fuss about it.12:40
PinealGlandOptic left12:40
jast I mean people are entitled to their opinions, the real shame is that so many people actively resist proper discussion of stuff like this12:41
CarloWood The worst part is that a sphere has been created where it became all undiscusable. I wouldn't have been surpriced if I had been kicked from this channel for saying I don't care about what people think and still use 'master' as main branch name :p. Hysteria rules.12:42
Ha! I was already typing that. Yes.12:42
And moderation of everything except one opinion on many subjects.12:42
reprazent joined12:43
jazzy left12:43
CarloWood Ok, so I am here:12:44
>git checkout fix12:44
error: pathspec 'fix' did not match any file(s) known to git12:44
jast old git version?12:44
CarloWood Can I only fix that by changing remote.origin.fetch ?12:44
jast try: git checkout -t origin/fix12:44
oh12:44
CarloWood fatal: 'origin/fix' is not a commit and a branch 'fix' cannot be created from it12:44
jast you can manually fetch another branch but it's cumbersome12:45
git fetch origin refs/heads/fix:refs/remotes/origin/fix12:45
CarloWood From https://github.com/janekb04/glfwpp12:46
* [new branch] fix -> origin/fix12:46
jast it won't auto-update on subsequent 'git fetch'es, either12:46
CarloWood >git checkout -t origin/fix12:46
M external/glfw12:46
M external/imgui/imgui12:46
fatal: Cannot setup tracking information; starting point 'origin/fix' is not a branch.12:46
He said he made a branch...12:46
jast hmm, maybe there's a check against the fetch config somewhere in there12:46
CarloWood Here is his email: I applied fixes and pushed them to the `fix` branch. It should fix issues #16, #20, #79 and #80. Let me know if this solves your issues. If it does, we may close this PR and I will merge the `fix` branch.12:47
adlternative joined12:48
jast yeah, the branch exists as you can see from the manual fetch updating something12:48
durham joined12:48
jast I don't know why the automatic tracking setup isn't working but we can do the manual version:12:48
git checkout -b fix origin/fix12:49
CarloWood That worked12:49
durham left12:49
jast anything is possible... you just have to know an extra 35 git commands :-)12:49
durham joined12:50
CarloWood Thanks for you help as always <312:50
jast you're welcome12:50
shailangsa joined12:52
CarloWood Why did you also fetch refs/heads/fix ?12:52
in: git fetch origin refs/heads/fix:refs/remotes/origin/fix12:53
jast no, that's a refspec12:53
the left half of the foo:bar is the source ref on the remote side12:53
and it specifies that should go into the local ref specified on the right12:53
CarloWood Ah ok - so all branches are put in heads/ ? There is like no refs/branches/ ? :)12:54
jast exactly, some of the terminology is a bit... historical12:54
refs/heads/ is the base namespace for local branches12:54
CarloWood ok, I am getting it, thanks :)12:55
jast 'git branch' and many other tools just hide it from you12:55
you can see the real refs in your repo: git show-ref12:55
gh34 joined12:55
CarloWood Not compiling... so I'll have to ask for a pull request I guess. Hence, I need to push this branch to 'github'12:58
git push github fix12:58
?12:58
jast yes12:58
add -u if you want this as your upstream branch12:58
makes it easier to keep in sync with your version of the branch12:59
CarloWood Basically he ignored all my previous pull requests, wtf.13:05
jast nice13:05
trace1918 joined13:05
CarloWood I hate ppl who are sloppy - if that is the upstream author then why am I using this :\13:05
jast yeah, bit disappointing13:06
always nice when you report an issue complete with analysis, or file a PR, and the maintainer just applies it a few hours later13:06
like when I found an off-by-thousand bug in a rate limiter13:07
CarloWood I have fixed dramatic/serious bugs in the past (and being a perfectionist, then they were not just fixed, but fixed in a really robust general way)... only to be ignored for YEARS because the maintainer doesn't have the time to review patches that are a bit complex.13:09
Aka, added perfect support for multi-HEAD setups (multiple monitors) to the window manager that was used with Gnome (now they use a different window managers, but that was metacity). I kept updating the collisions of my patch for 5 years and then gave up.13:10
jast I tend to make smaller contributions outside of work, so I hardly run into that kind of issue13:10
but yeah, that sounds seriously frustrating13:11
CarloWood Also fixed HTTP pipelining support in libcurl in a perfect way - but the maintainer had no time (or expertise to understand) to review it; and 3 years afterwards they REMOVED all support for pipelining completely from curl (we are too stupid).13:11
jast dang13:12
CarloWood :/13:12
jast I remember a user survey from the curl maintainer ("which features do you use? ... want?")13:12
there was websocket support on the list13:12
as if that would ever happen. make it actually usable would be a nightmare, and I don't want to know what would have to happen to the code13:13
CarloWood I am ok with it when people are too stupid, but then just blindly merge what I wrote grrr. A good experience in that regard I had with lib M4RI (a library for fast arithmetic with dense matrices over F2), THE open source library used for fast matrix stuff over F2).13:14
He let me make huge changes, with direct git access even - after only reviewing what I had done for other things on the internet. And they were insane - no way he could understand what I was doing lol. Well, the objective was clear: I was inverting the bits in the base word, so bit 0 became bit 63 etc.13:16
Afterwards he said only in the end whenever everything fell into place again he saw that I was right that this was better.13:16
So, that was a lot of trust imho.13:17
jast true13:17
working on low level numerical/algebra code isn't my cup of tea13:18
I'm much happier letting other people think about that and just using their work :)13:19
CarloWood Most of that library is totally over my head too - but I know something, after having written an implementation from scratch that does elliptic curve crypto that are over GF(2^n)13:20
jast I used to spend a fair bit of time on IRC and its shortcomings (without any amazing results to show for it, but it was interesting)... but at this point there's too much webshit to compete with13:20
I actually work for a company that does chat webshit for a specific class of use cases, and now I can focus on scaling that up13:21
CarloWood The "problem" was to do it in a way that didn't introduce now bugs. So I wrapped everything in C++ classes first to get typesafety and was able to make changes in parts while still being able to run the testsuite.13:21
So, that created a really huge mess.13:21
s/now/new/13:21
jast a mess called C++ ;D13:21
CarloWood heheh13:21
jast I'm introducing a new component at work written in Rust, my first project with it13:21
it's been interesting13:22
osse I want to do that to13:22
o13:22
jast and it certainly removes a few headaches with me needing shared memory for performance13:22
osse But stuff depends on stuff that depends on stuff that uses a library for a protocol and so on13:23
CarloWood I am too old to switch to Rust (or anything new). Just going to do C++ till I die.13:23
jast "too old"13:23
nice excuse :p13:23
CarloWood Learning vulkan now though - but hey, it is C++ :)13:23
osse So I can't just write a new thing in a different language without rewriting some other stuff13:23
jast the cool thing is that the types make sure I can't read/write the shared memory objects without obtaining a lock first13:24
roadie left13:24
CarloWood I wrote code for that in C++13:24
It's wonderful - and nobody seems to notice it (or use it). It is weird.13:25
jast and the lock automatically releases when it goes out of scope, and I can't pass it to places that can copy it13:25
Gurkenglas left13:25
roadie joined13:25
CarloWood https://github.com/CarloWood/ai-threadsafe13:25
I bet my design is even better? :)13:26
jast the latter would probably be hard or impossible in a language without borrow checking13:26
CarloWood what you think13:26
trace1918 left13:27
jast in terms of how clean it is, they're fairly similar13:27
CarloWood This allows you to write code that is read/write lock aware, easily convertable between different types of mutexes though: read/write, or just a plain mutex, or no mutex at all but just checking (in debug mode) that there is indeed only one thread at a time access it.13:28
osse jast: what kind of component is it? How does it fit into the rest?13:28
jast well, we have a fairly mixed read/write load and make heavy use of transactions and row locking to ensure data consistency13:28
but some operations are tricky to lock because of the sheer number of different tables and rows involved13:29
so the new component is a network service that other components contact to perform these critical operations entirely in RAM13:29
and they're committed to the database in near-realtime13:30
CarloWood Taking a read lock (using just mutexes too) gives const& access only. You can convert write-locks to read-locks of course (either because the former is derived from the latter, or by seamless going from a write lock to a read lock), and visa versa (going from a readlock to a writelock without releasing the read first of course). You can write fuctions that take an accessor object, guaranteeing that the object is already locked etc.13:30
jast basically the component enforces an ordering on operations but lets these operations run in typically <1ms, the only downside being that a power loss or machine crash can lose a second of data13:31
AbleBacon joined13:31
CarloWood Oh - well, everything is in ram here. In the ends they are just atomic variables no? It's just the API that makes it impossible to make mistakes.13:31
jast yeah13:32
CarloWood Hardly a downside if the effect of a 1s delay is that it is much much faster.13:32
jast and these are entire data structures, so they're "not that atomic"13:32
but the locking makes them so13:32
CarloWood the data structures that are protected are not atomic, otherwise you wouldn't even need locks.13:33
jast exactly13:33
CarloWood I mean, the locks are atomics.13:33
jast yeah13:33
CarloWood No database here, or locks-over-networks :p. Just atomic vars in ram.13:33
jast precisely13:33
CarloWood I did write an API for locking files though...13:34
jast that was the design idea, to make it virtually impossible for an operation to block13:34
(let's not talk about interrupts and swapping and such...)13:34
CarloWood Things that are "perfect" usually tend to be a lot more complex than what people expect/accept. I think that is one reason why people don't use my stuff quickly, steep learning curves and no documentation :p13:35
roadie left13:35
jast and then the whole thing uses a brokerless message queue approach to have the components communicate13:35
which helps abstract away some short-term temporary failures without pretending that networks never fail13:35
ThorMojito joined13:36
CarloWood This is what I like about vulkan (that I am now learning): a very huge complex API that requires you to do every little detail. Yet, it is the only way to really get everything out of it. And people are apparently (finally) willing to use it in order to get the performance increases.13:36
jast I don't really want to get into that myself13:37
but one of the projects on "my list"(tm) is a 3d render engine that simulates hand-drawing... not just cel shading but actual contours (and maybe even textures) that look human... which I suspect is just about impossible to hardware-accelerate13:37
I mean maybe using something like cuda/opencl... but I'd first have to start the project, and I suspect I wouldn't start out with that. in the end the question is moot because I don't really have time to do it anyway :>13:39
CarloWood What you describe I like - sounds like you are not afraid to write complex code when that is necessary to make things robust under ALL circumstances - and not write some half-arsed then subsequently keeps having problems over the years, requiring kludge upon kludge to work around problems, that never CAN be fixed (aka, if you ignore network failures from the get go, you will never be able to make REALLY reliable. Certainly not13:40
"later on")13:40
nyah joined13:40
jast yeah, we've been through a few iterations with this codebase13:40
bookworm maybe that discussion has outlived this channel's topic and should move to a query13:40
jast hey, off topic is allowed here as long as it's not getting in the way of on topic stuff, I don't make the rules13:41
(actually I do, but that's beside the point :P)13:41
CarloWood I'm fine with closing the discussion anyway - and going back to work :)13:41
Shentino left13:51
nvmd joined13:51
varaindemian left13:54
otisolsen70 joined13:58
jazzy joined14:01
roadie joined14:01
Shentino joined14:02
randomuser joined14:04
cbreak jast: how about using a network like stylegan?14:06
or an other image-to-image translation network?14:06
CarloWood I'd love to see (have) A.I. that can tell IRC discussions apart in channels. Then you can just ignore a "discussion" without muting people completely. Or highly one that you are actively interested in.14:07
s/highly/highlight/14:07
I was thinking about this before because I felt the need for it when /ignore-ing someone; in that case you not just want to ignore that person, but also every discussion they are involved in (seeing just one side of a discussion is highly annoying).14:08
sudoforge joined14:08
jast cbreak: I was thinking of making this usable as a 3d engine, where you can render arbitrary scenes with animation, ideally in realtime14:09
AI isn't that great unfortunately14:09
I don't usually trust it to filter my inputs for me (though I make an exception for spam with an "unsure" bucket14:09
cbreak the way it'd work is to render something normally, then use style transfer to "stylize" it14:10
jast just a while ago one of our customers at work reported a deepl translation that said the exact opposite of the original (and not just a simple negation in the wording, it was a completely different sentence)14:10
CarloWood Actually, I think this is technically possible already at this time. It seems a lot less difficult then Watson, the AI playing jeopardy :p.14:10
jast and it kind of sucks if your customer says "I'm not at all happy with how your service handled this and I'm not sure I'll do business with you again" and it gets translated to "I'm very happy with your service"14:12
osse CarloWood: sounds like the kind of thing that makes your IRC client use 40 % CPU continuously :p14:12
CarloWood osso: LOL14:12
jast no, to achieve that you just implement it with electron :>14:12
cbreak jast: sounds good. Always be friendly14:12
jast that's another thing we need more of: stuff replaced by stuff that's based on electron14:13
cbreak jast: but language translation is much harder than image translation14:13
https://genekogan.com/works/style-transfer/ // 5 years old, modern architectures are better14:13
jast eh, I've yet to see really amazing results14:13
and, simply put, I don't think AI the way it's done currently is sustainable14:14
CarloWood There is no "AI" yet.14:14
jast it shines in narrow domains, sure14:14
but there is no known model that scales to larger parts of the real world14:14
CarloWood Just sophisticated pattern recognition.14:15
jast and as long as that doesn't exist, you'll keep having weird glitches in unexpected corner cases14:15
cbreak jast: so?14:15
osse easier if we let the AI dictate the real world14:15
cbreak that's like saying "programming is not sustainable"14:15
just because you have to write new programs for every new problem14:15
jast in programming you have a different class of failures14:15
osse Like Rehoboam14:15
jast but if an AI model fails in particular ways, often the only thing you do is retrain from scratch14:15
varaindemian joined14:15
cbreak I use machine learning at work, and it works _SO_MUCH_ better than any alternative, it's not even funny14:16
jast as I said... if the problem domain is narrow enough, it's usually fine14:16
CarloWood The AI's for self-driving cars will still look at pure noise and tell you that is a truck that you have to evade and drive into the side of the road. I mean, if they can't tell noise from the real thing, what are they doing?14:16
cbreak translating an image is quite narrow domain14:16
jast depends on the translation14:16
cbreak CarloWood: they can tell noise from the real thing14:16
CarloWood Not if you feed them just the right noise.14:17
cbreak outlier detection is easy14:17
jast but often, extensive domain knowledge is required14:17
cbreak if you feed them the right noise, then it's not noise, it's data14:17
jast for example, trucks will often have speed limit signs attached to their rear14:17
CarloWood It will look like noise to us :p14:17
jast and adversarial samples are definitely a thing14:17
cbreak CarloWood: do you know "optical illusions"?14:17
skapata joined14:17
skapata left14:17
skapata joined14:17
cbreak the old school kind14:17
CarloWood https://www.bbc.com/news/technology-4184587814:18
cbreak those are basically adversarial images that work on humans14:18
jast optical illusions are fairly well documented and consistent between humans, but with AI potentially every new model implementation will have entirely different failure modes14:18
CarloWood Computers can be fooled into thinking a picture of a taxi is a dog just by changing one pixel, suggests research.14:18
cbreak and depending on how good your vision algorithm is, they also work on those14:18
CarloWood ^^^ quote from the above article14:18
cbreak CarloWood: so?14:18
CarloWood So they are not intelligent :p.14:19
cbreak of course they're not14:19
CarloWood They just classify14:19
cbreak they just classify better than any human could14:19
jast I recall a paper in which they fed images into a popular image recognizer and its recognition rates went down by a lot when they just shifted the whole image to the right by 50 pixels14:19
CarloWood Well, that was the original discussion topic (ish)14:19
cbreak the original topic was: can AI translate an image into something that looks hand drawn?14:19
jast the point is that failure modes are subtle14:20
cbreak and my claim is: Yeah, I think it can14:20
jast training is hard14:20
fixing training mistakes can be impossible, or worse you'll notice it too late14:20
CarloWood I was talking about this (sub)topic:14:20
<jast> and, simply put, I don't think AI the way it's done currently is sustainable14:20
cbreak jast: there are newer classifiers that are affine-transformation invariant14:20
CarloWood <CarloWood> There is no "AI" yet.14:20
<jast> it shines in narrow domains14:20
jast and there's always a point at which you stop being able to train more things into the same network14:20
cbreak and for example for this purpose, you'd use a CNN, which is inherently position invariant14:21
since it's convolutional14:21
jast this was actually a paper about a CNN-based recognizer14:21
cbreak recognizers are not convolutional14:21
they always have a FC tail14:21
that's the problem14:21
if you want to make them position independent, you have to be more clever14:21
jast here's the paper btw: https://www.jmlr.org/papers/volume20/19-519/19-519.pdf14:22
cbreak I'm not personally working with classifiers, so I don't know the tricks they have nowadays, but I think it involves extracting features in a spatially invariant representation14:22
adlternative left14:23
jast they specifically argue that CNNs aren't actually that position-invariant14:23
cbreak depends on how careful you are with implementing them14:23
Samian joined14:24
cbreak all the ones I work with are14:24
jast I believe they tested six different reference implementations (from 2019)14:24
nyah left14:25
jast and the sampling argument seems quite sound to me14:26
subopt joined14:26
nyah joined14:27
nobody_ joined14:27
sysh left14:27
jast and I guess you can address this by mangling the data between layers, but how common is that in common implementations? I have no idea :)14:28
cbreak the way it's addressed in the networks I work with is by translating from an image to an other14:29
jast you mean enhancing the training set?14:29
cbreak each output pixel is determined deterministically from only the input pixel in its region of information14:29
no14:29
architecting the network14:29
the network has no information about the position of a pixel in the image, so it can not be dependent on it either14:30
jast that would make it invariant to positional changes but not to changes in scale14:30
cbreak indeed.14:30
my network works on outputs of renderers14:31
so you can't really scale those easily14:31
(without destroying the information it needs to do its job)14:31
jast which makes your domain quite a bit narrower than image translation in other contexts :)14:31
cbreak yeah.14:31
but the same idea applies to style transfer too, if you want it14:32
jast humanization can cause deviations by a fair bit more than a distance of one pixel, though14:33
cbreak although, I'm not sure if scale invariance even means anything for translating an image into a hand-drawn sketch.14:34
randomuser left14:34
cbreak would you want all lines in the sketch to become thinner? or would you want less information to be extracted? I'd expect the latter14:34
jast I'd want the lines to be jittery for instance if modeling a bad artist14:35
cbreak you get that naturally14:35
jast and curves and straight lines to be less perfect and more like they follow the natural movement of the joints14:35
cbreak the opposite is much harder, temporal stability in image translation algorithms is... not the default :)14:35
jast so you'd have "straight" lines that tend to be slightly curved around the artist's arm14:36
and then for animation the parameters shouldn't deviate too much between frames14:37
but still deviate a little so it looks like each frame was drawn separately14:37
adlternative joined14:37
mike18 joined14:38
mike18 hi14:38
does git clone have a timeout i can set?14:38
and can i only clone master branch?14:38
or the latest commit?14:38
of master branch14:39
or another branch14:39
cbreak you can do the latter with --branch master --depth 114:39
mike18 and the timeout param?14:39
jast there's no built in timeout option14:39
mike18 whats default?14:39
cbreak ssh has a timeout probably14:39
jast TCP timeout from system or SSH timeout14:39
(or HTTP timeout if you're using HTTP... in which case it can potentially be customized with curl settings)14:40
mike18 and https clone?14:40
lpapp joined14:40
lpapp hi, how to get a git diff between main and my branch for particular filepaths?14:40
git diff main..HEAD -- filepath kind of thing14:40
except that the current branch has been rebased a few times on top of main14:40
mike18 @jast how to set the timeout for clone with https?14:41
jast hm, looks like libcurl doesn't let you configure it externally14:42
arcatech joined14:42
mike18 @jast libcurl?14:42
jast libcurl is the library git uses internally to do HTTP operations14:43
mike18 @jast does git clone use libcurl?14:43
jast and git doesn't expose an option to control timeouts, nor does libcurl (to the end user)14:43
Xaldafax joined14:43
jast if you're running the clone from a script, you could try and wrap a timeout of your own around the whole command, but that's a bit tricky14:43
lpapp: what kind of problems are the rebases causing you when trying that?14:44
nobody_ left14:45
cbreak lpapp: git diff yourbranch main -- file14:45
Gurkenglas joined14:46
mike18 @jast so git clone will hang forever?14:46
jast mike18: normally it will timeout eventually due to the underlying TCP timeouts (which can be several minutes after the data was received)14:46
mike18 after 30 min?14:46
cbreak I think standard tcp timeout can be in the order of hours or days14:46
jast however if a remote server is being malicious or very, very slow, it could take a lot longer14:46
on linux, TCP timeouts are usually due to a limit on retries, and a factor on how long the delay between retries scales up14:47
lpapp cbreak: yep, I tried what I wrote out, and I am surprised that it just worked :D14:47
hnOsmium0001 joined14:47
mike18 jast: i think i was stuck in git clone of the github repo - meaning it didnt complete...14:47
lpapp My assumption was wrong that rebase could break it14:47
jast: nothing apparently, thanks :D14:48
jast :D14:48
jazzy left14:48
cbreak lpapp: git diff doesn't look at history14:48
just at state14:48
jast yeah, diff is all "compare this tree to this tree"14:48
lpapp before merging my feature branch to main, how would you find all the TODOs added by me?14:49
in other words, I would not like to get the TODOs that is there in main14:49
jast git log main..feature -p -STODO14:50
at least that's what I would use14:50
lpapp git diff main branch | grep grep or git grep -r so?14:50
git grep -l*14:50
osse can try git diff -STODO main branch14:50
jast though that splits it up by commit14:50
lpapp why main first?14:50
jast I don't think -S works with diff?14:50
well, it's a range14:50
a..b means the same as ~a b which is basically "everything in b but exclude a and all of its history"14:51
or, intuitively (most of the time), "from a to b"14:51
osse jast: -S works with diff, yes14:51
lpapp sure, that is why it should be feature main14:51
not main feature, right?14:51
jast then you would get TODOs that exist on main but not on feature14:51
lpapp oh, just reread the meaning of a b14:52
I assumed it is a..b14:52
but it seems to be b..a14:52
jast with 'git diff', 'a..b' and 'a b' is the same14:52
lpapp now, I am confused14:52
jast but in general '..' has a different more specific meaning14:52
jetchisel joined14:52
jast e.g. in 'git log' (which was my example)14:52
lpapp then why not main feature14:52
if I want to see this in my feature, not main?14:53
jast yeah, that's what I would use, if I was using 'git diff'14:53
osse https://raw.githubusercontent.com/Osse/git-stuff/master/dots.txt14:53
lpapp git diff -STODO foo main seems to output a lot of flood14:53
can I squeeze this?14:53
e.g. just to get file and line numbers to the TODOs, so that I can jump to them14:54
jast tricky :)14:54
thiago joined14:55
lpapp I guess I could | grep14:55
anyway, it does not work14:55
it does not show only the TODOs from my branch14:55
osse In that case I would git grep -n ... in feature, and subtract the result from main14:55
lpapp the git diff version14:55
junktext joined14:56
lpapp how would you substract the result from main?14:56
osse something like: comm -23 <(git grep TODO feature) <(git grep TODO main)14:57
lpapp git log main..feature -p -STODO | grep TODO - workecd14:57
skapata left14:57
lpapp thanks jast14:57
osse thanks for the idea, maybe the git log command is simpler for a layman :)14:58
jast that will not give you line numbers unfortunately14:58
osse no line numbers there though14:58
jast and it will break down if things moved to different files14:58
osse me gusta vim -q <(git grep -n ...)14:58
lpapp actually, I was wrong, it did not work.14:58
no line number is fine14:59
so long as there is content14:59
but it does not give me the right content anyway14:59
so, something is not right14:59
it gives some content, but having had a closer look, it is not correct14:59
osse it will also show removals, for example14:59
the only actually technically correct solution I can think of is to find all todos in both branches and subtract one from the other15:00
jast seems error-prone15:00
roadie left15:04
bin101 left15:05
morrigan left15:07
DoofusCanadensis joined15:07
osse git log -p main..feature | grep '^+.*TODO' I gues15:08
s15:08
jast: only if you're not a perfect human being15:10
jast :(15:11
bin101 joined15:20
roxlu joined15:21
Samian left15:21
cvmn joined15:22
roxlu Hi! When I use `git apply mychanges.diff` once it works fine, but when I try to apply the same command again I get an error `patch does not apply` which makes sense. But I'm applying this patch with a cmake script which fails because of this and I was wondering if git has a feature to fail silently? .. or maybe there is a better solution?15:23
bookworm your shell does15:23
|| true15:23
osse roxlu: i've used the following trick in the past: Do a reverse patch dry run. If that succeeds you know the patch has already been applied15:24
bookworm but why are you trying to add a patch that already exists?15:24
osse roxlu: git apply --check --reverse15:25
roxlu bookworm: it looks like cmake tries to apply the patch every time I build my project15:25
bookworm yes, but why15:25
roxlu osse: ah thanks! how would you combine that with cmake?15:25
bookworm: good question :) I'm not sure if this is normal cmake behavior or not tbh15:25
osse roxlu: basically the same as what you're doing now15:26
bookworm cmake just does what you tell it to15:26
mike18 left15:26
roxlu bookworm: you can say that about every command in general15:26
osse roxlu: usually you can specify more than one COMMAND (or PATCH_COMMAND or whatever) and if one succeeds it will also do the next15:26
jast if it's a patch to the sources, that makes sense... cmake isn't really designed to alter source files15:26
roxlu bookworm: I'm also telling it to use a git repository and cmake is not cloning it upon every run neither15:26
osse roxlu: concider using FetchContent instead of ExternalProject. It runs at "cmake time", not "build time", and is supposed to be easier to use15:27
roxlu osse: so you add something like: `PATCH_COMMAND git --apply --check --revers mychanges.diff && git apply mychanges.diff` ?15:27
osse it will fix the whole issue, I think15:27
jast ||, not &&15:28
roxlu jast: ah thanks15:28
jast OTOH you could just do: PATCH_COMMAND git apply ... || true15:28
roxlu osse: fetchcontent only works for other cmake projects if I'm correct15:28
osse roxlu: says "via any method supported by the ExternalProject module" in the docs15:28
but I admit I haven't tried it myself15:28
Strom left15:29
roxlu ok thanks!15:29
lgc left15:30
roadie joined15:30
roxlu Using || true did the trick for now :) ... maybe not the best solution, but I think the correct solution lies outside cmake in this case (e.g. the library should be fixed)15:30
osse submit the patch upstream :P15:30
Strom joined15:31
osse barring any "hurr durr but IP and licensing and stuff" problems15:31
roxlu yeah hmm there is a bit more to it than I'm sharing :)15:31
i'm using a minus .1 version of a library as ffmpeg only works with this version. I could udpate ffmepg too but where do you stop ^.^15:32
cvmn left15:32
osse we-have-to-go-deeper-meme.jpg15:32
wait... || true ?15:33
git apply --check --reverse mychanges.diff || git apply mychanges.diff15:33
otherwise it won't apply the patch the first time!15:33
jaggz left15:34
madewokherd joined15:34
osse also, on some systems it might not generate an actual script to run the commands so shell syntax can be a bit icky15:35
srinidhi joined15:36
bin101 left15:36
roxlu ah thanks!15:39
bin101 joined15:39
tuskkk____ joined15:46
osse to solve the shell problem you can do FOO_COMMAND cmd1 COMMAND cmd2 (which will run one after the other) but then you need a way to negate the result of the first, and I haven't found a good way except using shell syntax, so...15:46
jast osse: git apply mychanges.diff || true15:48
Sasazuka joined15:49
varaindemian left15:49
osse that still assumes shell15:51
strk left15:54
osse Now I'm just making the whole ordeal more difficult for myself. In most cases it will be run as a shell script.15:54
roadie left15:56
adlternative left15:57
jhulten joined15:59
morrigan joined16:03
Samian joined16:11
lpapp osse: what did you mean by git log -p main..feature | grep '^+.*TODO'?16:13
osse lpapp: I mean that as an improvement over the previous version of using git log for this task16:20
lpapp yeah, I get that you wanted to see additions, only.16:20
but that was not a solution in the first place from what I can see?16:20
it is not giving me the TODOs introduced in my branch?16:20
does it for you?16:20
osse I haven't got an applicable repo to test in at the moment16:21
The reason I wrote it so late is simply that I didn't think of it before then16:21
Murr left16:22
Murr joined16:22
lpapp ah, ok, well, I am still looking for a solution :)16:22
osse Is that a way of saying it didn't work?16:23
lpapp yes16:23
I still do not get this main..feature thing16:23
is it not source..destination?16:23
osse more like from..to16:23
imMute "show me all the commits in feature that are not also present in main"16:23
jhulten left16:23
osse lpapp: what does it print, then?16:23
imMute where "in" means "reachable from" if you want to get into the details16:23
jhulten joined16:25
nobody_ joined16:25
lpapp osse: why git log, not git diff?16:25
jhulten left16:26
osse lpapp: now that you mention it, no particular reason. cargo culted from jast's suggestion16:26
lpapp git diff is less noisy16:26
osse indeed16:27
orbyt joined16:28
osse I tested a bit. both the 'git diff ...' and 'git log -p ...' solutions seem to do what's desired piping it to | grep '^+.*TODO'16:28
lpapp osse: yes, I was wrong. I am really sorry.16:29
osse no problemo16:30
the dude abides16:30
lpapp but if I am honest, it is not correct for me, still16:30
it gives some TODOs not introduced in the branch16:30
how is this possible?16:30
osse the git diff solution?16:30
lpapp I am getting a TODO in a line16:30
which git blame says 2014-102016:31
both git diff and git log16:31
jhulten joined16:31
osse that's possible if a TODO is removed in main that remains in feature16:31
that will appear as an addition when you diff main against feature16:31
lpapp how to get that out of the way?16:31
roadie joined16:32
osse if it also appears in the git log solution then I don't know. I expected git log to not show it16:32
lpapp oh, yes, true man16:32
actually, git log shows some TODOs16:33
which git diff does not16:33
so, that is not perfect either16:33
it seems to show intermittent ones16:33
that were added in the branch and then removed16:34
osse try this: git diff main...feature16:34
lpapp maybe, I need to create the intersection of the git diff and log solutions?16:34
darkbit left16:34
osse THREE dots, oh lawd16:34
lpapp that works! :)16:34
jhulten left16:35
ikke two dots with diff is redundant16:36
osse aaaand now I got Mr. Bungle in my head. Thanks, ikke.16:36
lpapp thanks, osse.16:37
osse Off the top of my head I can't think a weird edge case where this would give a different result from comparing the actual results of grepping TODO in both branches16:39
Timvde I *always* forget the difference between two and three dots :(16:39
osse But at this point my comm -23 <(blablabla) solution is starting to look not so complicated after all :P16:39
Timvde: print this one out and keep it under your pillow: https://raw.githubusercontent.com/Osse/git-stuff/master/dots.txt16:40
after ten-ish years you should be good to go16:40
ikke Learning by osmosis, nice16:41
Timvde osse: I just always look it up and then forget 5 minutes later (or I just try until I get what I'm looking for)16:41
lpapp osse: how is comm -23<... not more complicated than ...?16:41
CarloWood So, upstream merged everything - and now I'd like to test his 'main' branch, but without deleting my own main branch ... Hmm. I suppose I could just rename my own branch first and then do the same thing as before for the 'fix' branch.16:42
Lunatrius left16:42
Samian left16:42
Timvde osse: the thing that always confuses me is that the logic seems to be reversed for diff vs the rest16:42
osse lpapp: the command line is more complicted, but what it represents is simpler. Subjective, I guess16:42
lpapp fair enough16:43
Timvde So if anyone can explain how that's not the case, maybe I can remember :P16:43
osse But I'm probably biased. It was the first solution I could think of, and has given the correct answer all this time we tweaked the other ones :p16:43
Timvde: diff compares to states. .. means a range. ranges don't make sense for diff. QED16:44
*two states16:44
CarloWood Oh, I have a question that has been bothering me: A while ago I added 'branch = whateverbranch' to all [submodule "..."] blocks in .gitmodule. It seems that 'branch=' wasn't used (it only contained path= and url=). I use this branch in my scripts to make sure that that branch of the submodule will be checkedout.16:44
osse Timvde: I wouldn't say it's reversed. It's just different16:44
CarloWood But this upstream ALSO had a 'branch=' in his .gitmodules :/, which gave me problems. So, question: is 'branch=' used by git somehow?16:45
.gitmodules*16:46
Acki joined16:46
Timvde osse: .. for log etc is the range from the base to the tip of the branch, while ... represents the entire range from tip to tip. For diff ... shows the diff starting from the merge base, while .. shows the diff between the tips16:46
Lunatrius joined16:46
osse I see your point16:47
Acki I use `* text=auto` in gitattributes, however what does it mean for my line endings? What line ending will end up in the central reposity?16:47
imMute Acki: depends on core.autocrlf settings16:47
osse IF I were king I would have made .. do what ... does now, treat ... as a syntax error and left it at that.16:47
Acki imMute: but this is a user setting, right?16:49
how can I make sure that in the central repo is only LF used, while user on windows can checkout with CRLF?16:49
imMute I don't think that's possible without setting core.autocrlf on each clone16:49
osse * text=auto in .gitattributes is the best you get16:50
that ensures LF in the the repo itself.16:51
Acki osse: I think this enforces that the same line ending is used for all files, it is not enforcing LF16:54
jhulten joined16:54
ikke It enables line-ending normalization16:54
osse https://git-scm.com/docs/gitattributes#Documentation/gitattributes.txt-Settostringvalueauto16:54
ikke meaning that it makes sure that LF is stored in the index/repository, and that it will checkout files in the working tree in the native format16:55
Acki so no mix of line endings in one file, correct?16:56
ikke It does not prevent editors making a mess of the files16:57
Acki ah okay, so internally it stores them as LF16:57
Acki left17:02
CarloWood Is there a way to merge such that if one branch add something to a line (aka 'void setTime(double)' --> inline void setTime(double') and the other branch added that PLUS something else, in a single commit ('void setTime(double)' --> '[[always_inline]] inline void setTime(double)') that git then will think: they agree on adding 'inline' and then one adds '[[always_inline]]' so I'll keep that.17:02
Not sure how to formulate that...17:02
lpapp left17:02
CarloWood multiple changes on a single line merging thus. In principle not that much different from when they appear on different lines no? Aka, I have line1 and line2, and I merge with a branch that has line1 and line3, it will just add line3.17:03
I think I even wrote the algorithm for that once...17:05
imMute CarloWood: I don't think you can make that automatic. git works with lines and the line was changed in both branches, therefore _conflict_17:05
CarloWood Hmm, I once wrote something to merge changelogs where author names could be added to the same line by different "branches"...17:07
I think it could be applied to git to merge single lines that were changed by both.17:08
I can't find it back though :/17:08
jast you could do this in a custom merge driver most likely17:11
but there's no built-in magic for this17:11
CarloWood Ah, here it is: https://github.com/AlericInglewood/contribmerge/blob/master/src/three_way_merge.h17:12
where contribmerge is the whole application17:12
jast see man gitattributes -> "Defining a custom merge driver"17:12
gitinfo the gitattributes manpage is available at https://gitirc.eu/gitattributes.html17:12
jast so you have to define it in .git/config or ~/.gitconfig and then apply it to a file pattern using .gitattributes17:12
nobody_ left17:12
rfuentess left17:15
EvilDMP left17:17
kapil left17:26
kapil joined17:26
tsdh joined17:27
stkrdknmibalz joined17:28
odoood joined17:30
masber joined17:36
Samian joined17:40
reprazent left17:41
travisghansen joined17:42
reprazent joined17:42
NightMonkey Howdy. My team is having a problem with 'ghost commits' comming back when we commit feature branches to long-standing branches with GitHub PRs. I feel (don't know) that someone did a rebase on a public branch when they shouldn't have. Is there a way to find out when/where rebases are in the git history (vs. merges)?17:47
davve you can see it with git reflog17:47
but that is only for your local repository17:48
NightMonkey I have a feeling it is a misconfigured IDE at the root of this, but until I can validate that...17:48
jast not in a central place unfortunately17:48
you can really only see it on the machine of the person who did it17:48
davve ^17:48
jast github PRs keep a note of force pushes made to the underlying branch, too17:48
NightMonkey davve: jast: Ah. Thanks. If I have access to local repositorys, what would I look for in the reflog?17:48
jast but if someone rebased the main branch outside of a PR, you're *probably* out of luck17:49
NightMonkey Ugh, *repositories17:49
jast: OK, thanks.17:49
jast search it for entries that say 'rebase' and hope you understand what's going on :)17:49
davve you can see when the rebases are done17:49
NightMonkey jast: Ah, it's just listed like that? Great!17:49
jast yeah. preferably don't look in the reflog for HEAD first because it tends to be a big mess17:50
EvilDMP joined17:51
NightMonkey One other question: Is there a 'pattern' (anti- or otherwise) that could result in 'ghost commits' coming back into PRs? Where previous changes seem to be 'replayed'?17:51
I *see* that the changes are in the destination branch, but the PR flow seems to think that the change is needed *again*.17:52
jast basically whenever one person updates a branch by rebasing, and another updates the branch by merging (having the old version of the branch locally)17:52
or similarly, if someone cherry-picked the commits from the feature branch to the target branch, they're technically different commits17:52
NightMonkey jast: Thank you. It's good to not feel quite as crazy as when I started seeing this, because of your help. :)17:53
jast general best practice: rebase feature branches to keep them up-to-date (unless they're super-active with multiple developers, in which case you may have to come up with your own workflow that minimizes pain), use merge (real merge, not squash) to integrate feature branches into long-lived branches17:54
the rebase is mostly for keeping things clean and making the feature branches easy to follow/understand later on17:54
the merges serve as markers in history when (and by who) the feature branch got merged17:54
tuskkk____ left17:55
jast similarly, forward-merging changes on an oldstable branch to a stable branch is best done with a merge so you can later see how the work made its way through the branches17:55
for tiny feature branches, or really messy feature branches, a squash merge may be better than a real merge17:56
NightMonkey jast: Thank you!17:57
jast but the two guiding principles are always: how likely is it that I will understand the history later? how likely are we to mess this up?17:57
cyrus_mc joined17:58
NightMonkey jast: We have been using GitHub PR's "Squash and merge" (but not rebase) for merging from topic/feature branches to long-lived branches like "dev" and "main".18:01
austin987 left18:02
jast yeah, it's not a terrible practice, but a big PR tends to be easier to understand afterwards if you keep the individual commits (if the individual commits make sense, i.e. they're not a huge sequence of "fix this" "try another approach" "fix some more tests" "undo this first change" etc.18:03
Thanatermesis joined18:03
Betal joined18:04
Thanatermesis left18:05
reprazent left18:10
ash_worksi joined18:10
nasamuffin joined18:10
reprazent joined18:11
dscho joined18:11
Gurkenglas Is there a way to make it so that particular commits don't show on a git blame?18:12
nevermind, should have googled that first18:13
ikke blame.ignoreRevsFile18:13
austin987 joined18:13
masber left18:16
dunpeal joined18:17
asbachb joined18:18
cyrus_mc left18:18
dunpeal Hello! I'd like to have a setup like this: two branches, a normal `master` and a special branch `published`, with the `published` branch containing a _subset_ of the files in the `master` head. Is that possible to do easily?18:19
asbachb Hi. I wonder if there's a possibility to launch a git-bash on windows with some kind of init script. I'm looking for an installation/user independent approach (so no /etc/profile, bash_profile, etc)18:20
ikke dunpeal: not trivialy18:20
Murr left18:22
Murr joined18:22
Narrat joined18:28
rahl joined18:29
EvilDMP_ joined18:31
dscho asbachb Git Bash respects ~/.bash_profile IIRC18:33
asbachb dscho: But it's user specific18:33
pulse left18:34
dscho You could try passing `-c <command> -i`, that _might_ work.18:34
asbachb dscho: Actually that closes the shell again18:34
EvilDMP left18:35
asbachb I want to distribute a pack with vanilla git-bash + some additional env variable setup. But I want to keep the ability to replace that vanilla git installation from time to time without fiddeling files in and out.18:35
So i don't have a problem with an external launcher18:36
clime joined18:38
jmcantrell joined18:38
dscho asbachb you could always put stuff into `/etc/profile.d/`18:43
asbachb dscho. From my undestanding this is placed in git-bash installation.18:44
dscho You would create a file in there, yes.18:44
AnAverageHuman left18:44
dscho Otherwise you would have to launch git-bash.exe with that `-c`/`-i` combination I mentioned earlier (if it works, which you need to test).18:45
dunpeal ikke: how would you do it? I'm thinking of doing a merge-squash of master into published, and just deleting private files from the merge commit.18:46
TomyWork left18:48
randallb joined18:48
dunpeal And then just to keep resetting `published` into a new merge-squashed commit.18:49
Gustavo6046 left18:49
Gustavo6046_ joined18:49
ikke yeah, it would involve something like that18:50
reprazent left18:50
AnAverageHuman joined18:50
asbachb dunpeal: Maybe you should rethink what you want to accomblish and why it should be in your git repo18:50
sounds at least strange to me18:50
reprazent joined18:51
Gustavo6046_Gustavo604618:51
osse asbachb: if the end result you want is just environment variables then you can make a script and have 'exec bash' at the bottom of it.18:51
this will re-read .bashrc, though. so might not fork for you if you want to modify the common vars because they might be overwritten18:52
asbachb osse: the important thing is it that I don't want to modify user/installation directory.18:56
so .bash_* and/or /etc is not working for now.18:57
dunpeal asbachb: I'm trying to publish a subset of the files of a repo to be more broadly accessible.18:58
So that subset goes to a public repo, while the main repo remains private.18:58
osse asbachb: I think my solution should work with that requirement19:00
asbachb dunpeal: So for me it sound like these are different repos.19:01
osse: Just to clearify I want to to something like this: https://gist.github.com/asbachb/9c01f2f77bd16a5a22bbfb56dd67d60819:02
And make it available to a newly opened bash.19:02
durham_ joined19:02
chexum left19:03
asbachb So ideally the user click on a shortcut to open that git-bash with that predefined stuff.19:03
chexum joined19:03
durham left19:03
Quietus left19:04
asbachb dunpeal: Is it for documentation purposes or should a thirdparty be able to interact with that public repo?19:07
dunpeal asbachb: purely documentation purposes. Effectively the `published` repo is read-only.19:09
Quietus joined19:09
asbachb dunpeal: Just my 2 cents: I'd suppose to keep these repos seperated. So you minimize the chance to expose private information by accident. And sync it somehow automated vi CI/CD. So you have a better control on what to publish and what not.19:11
osse asbachb: add 'exec bashg19:12
asbachb: try this: add 'exec bash' at the bottom of the script. then make a shortcut to git-bash.exe with Target: "C:\Program Files\Git\git-bash.exe" --cd-to-home C:\your\scripthere19:13
arkho joined19:13
john_johnk joined19:14
arkho I am trying to set up unauthenticated Git server-based access to a repo. I have placed a 'git-daemon-export-ok' file in the repo on the remote server, but I am still told that either I'm denied access or the repo is not exported. Is there another step?19:15
chexum left19:18
chexum joined19:18
asbachb osse: Ah cool. That works!19:19
osse asbachb: nice19:19
asbachb: there is a small caveat. If the user's .bashrc or other sourced file sets a brand new value for PATH (as opposed to adding something to it like you do) then you'll find that it won't work19:20
But I can't remember ever seeing that in real life. IF the user modifies PATH at all it's most usually similar to what you do, in which case you'll have no problems19:20
asbachb But some script is messing with my JAVA_HOME ^^ f*19:21
Thanatermesis joined19:23
Thanatermesis left19:23
asbachb Mh strange. The path gets changed to "../java-path"19:24
sniperwolf joined19:28
pulse joined19:28
Thanatermesis joined19:30
asbachb osse: thanks. works as wanted :)19:30
shlomif left19:30
asbachb dscho: Thank you as well.19:30
oncall-pokemon joined19:31
Thanatermesis left19:31
Thanatermesis joined19:31
oncall-pokemon .voice19:32
gitinfo oncall-pokemon: What? You're not even in #git!19:32
Thanatermesis left19:32
Thanatermesis joined19:33
ikke qlol19:33
jast: ^19:33
oncall-pokemon: fyi, you do not need voice here19:34
oncall-pokemon Oh thanks, the doc said I did. That's why I did. sorry19:35
I had a quiestion. When you do a `git pull` on a feature branch and get an error like so https://pastebin.com/vgWyuGZF. Why does that happen? Especially if you can do `git push` no problem?19:35
reprazent left19:39
reprazent joined19:40
imMute oncall-pokemon: "git push" (with no other arguments) would give the same error19:40
oncall-pokemon oh would it. so I need to do `git pull origin HEAD` then I guess?19:41
imMute any reason you can't setup the remote tracking branch first?19:42
and no, you'd want the name of your branch instead of "HEAD"19:42
oncall-pokemon I though HEAD just referred to the current one. I could setup a remote tracking branch, oddly i've been using git for years and have no idea what that is19:44
humanface joined19:46
Gustavo6046 left19:47
plasma41 joined19:47
Gustavo6046 joined19:47
asbachb I'd say it links a local branch to a remote one. I think it starts to make sense when you understand that a local and remote repository are more or less different entities.19:49
oncall-pokemon It's kinda odd that it just doesn't assume that branches with the same name are the same19:54
Xenguy left19:55
asbachb oncall-pokemon: actually you can have multiple remote locations19:57
oncall-pokemon yeah that makes sense. is there a way to automatically configure this when one creates a new branch and not need to do that extra command?19:58
reprazent left19:58
natrys left19:58
john_johnk left20:00
reprazent joined20:02
plasma41 I have have set the environment variables GIT_COMMITTER_NAME="Foo" and GIT_COMMITTER_EMAIL="bar@baz", but when I run `git commit -a -m "commit message"`, I still get the "Please tell me who you are." message. Shouldn't this work? Am I missing something? I'm using git v2.20.120:03
asbachb oncall-pokemon: I don't know if you can track a remote branch if it's not yet there.20:04
plasma41 s/have have/have/20:04
dscho left20:05
asbachb plasma41: Maybe you need to set an author as well?20:05
GIT_AUTHOR_{NAME|EMAIL}20:06
osse yeah, author != committer20:06
oncall-pokemon thanks20:06
osse actually if you set those you don't have to set the COMMITTER ones20:06
asbachb oncall-pokemon: Maybe create an alias for creating a local branch and push -u it to your remote repo.20:09
plasma41 Ok, so if I remove the GIT_COMMITTER_{NAME|EMAIL} environment variables and set GIT_AUTHOR_{NAME|EMAIL} environment variables, the commit should succeed and I shouldn't get the "Please tell me who you are" error?20:09
oriba joined20:10
Xenguy joined20:13
osse yes20:13
rahl- joined20:14
plasma41 I replaced the GIT_COMMITTER_{NAME|EMAIL} environment variables with GIT_AUTHOR_{NAME|EMAIL} environment variables and retried the commit using `git commit -a -m "commit message"`, but still got the same error.20:15
osse plasma41: how do you set them=20:16
tirnanog joined20:16
plasma41 osse: From a bash prompt $: export GIT_AUTHOR_NAME="Foo"20:16
export GIT_AUTHOR_EMAIL="bar@baz"20:17
rahl left20:17
reprazent left20:18
asbachb plasma41: Can you do normal commits (so no amendments)20:18
osse plasma41: huh... it seems like when you use the env var way you actually have to set all four20:18
plasma41 Ah, ok it turns out I needed all four environment variables GIT_{AUTHOR|COMMITTER}_{NAME|EMAIL}20:19
osse yeah that's a bit strange20:19
plasma41 asbachb: I'll try it.20:20
reprazent joined20:20
vysn joined20:21
Minall joined20:22
Minall Hello git community!20:22
I have a git branch I was working that was a branch of develop, in my project20:22
furrymcgee joined20:23
furrymcgee left20:23
Minall The problem is that, I worked a lot in develop and now my branch is somewhat behing20:23
s/behing/behind, so, I have to now work again with my first branch, yet it is not updated to the latest commits20:23
How should I fix this, and work with my original branch made from develop?20:24
plasma41 asbachb: Ok, I created another file and added it to the staging area with `git add filename`. I then tried `git commit -m "commit message" with just GIT_COMMITTER_{NAME|EMAIL} vars (errored), with just GIT_AUTHOR_{NAME|EMAIL} vars (errored), and finally with both (succeeded).20:27
roadie left20:30
durham joined20:32
Samian left20:33
durham left20:33
durham joined20:34
durham_ left20:34
durham__ joined20:34
Samian joined20:35
durham left20:38
absc joined20:44
dmc left20:47
dmc joined20:50
sniperwolf left20:51
oriba after a git stash pop I got a merge conflict, I dif git reset, because I thought this will go back before the stash. Some other things done, my file has now been removed by git. how to go back to the state before the stash pop?20:54
roadie joined20:56
tsdh left20:59
oriba I hope, reflog will be my friend here (if there is no easier way)20:59
BenjiProd left21:00
Narrat left21:05
schmillin joined21:05
Acki joined21:06
tsdh joined21:06
Acki I set `* text=auto` in my gitattributes, however, my current files are still in CRLF under linux after I did: `git add --renormalize .`21:08
madewokherd left21:09
absc left21:09
Kamilion left21:11
odoood left21:14
roadie left21:18
ikke dos2unix21:19
plasma41 osse asbachb: I don't understand. I'm trying to run this script https://sources.debian.org/src/gitpkg/0.29+nmu1/git-debimport/ from a bash shell where I've exported all of the GIT_{AUTHOR|COMMITTER}_{NAME|EMAIL} variable, yet when the script tries to run the command spanning lines 425-426, I get the "Please tell me who you are" message.21:24
I even verified the environment variables are present with a invocation of `env` inserted between lines 424 and 425.21:24
bkay joined21:27
beshr left21:28
jetchisel left21:28
Acki ikke: so this `--renormalize` does nothing as I see21:32
it will leave the line endings untouched21:32
plitter left21:32
orbyt left21:32
plasma41 And yet when I try running that same failing command interactively on a test repo instead of as part of a script it works as expected21:32
ikke Acki: it's to normalize the index, not the working tree21:33
It's an option for git add afterall, not git checkout21:33
Acki how can I normalize the working tree?21:33
Guest35 joined21:34
Acki ikke: ?21:34
ikke dos2unix can do it21:35
disi joined21:35
Thanatermesis left21:38
Acki and when I remove everything expect the git`folder and do a `git checkout .` again?21:39
madewokherd joined21:42
polyzen joined21:43
dmc left21:44
polyzendmc21:44
plasma41 Am I off base for thinking what works in an interactive shell should work in a script?21:45
geirha no, it should work equally well in either case21:46
Acki ikke: so when I do it like this I will get also the files in correct line ending21:47
however, I guess the disadvantage is, that other repositories will not get the new line endings when they not do the same right?21:48
plasma41 geirha: Any idea why it's not working then?21:48
orbyt joined21:49
geirha No, not without being able to reproduce it. And I'm sure you've double checked that it's not a typo like COMITTER instead of COMMITER?21:53
err, instead of COMMITTER21:53
declare -p "${!GIT_AUTHOR_@}" "${!GIT_COMMITTER_@}"21:54
gast0n joined21:55
plasma41 sheepishly realizes that actually he did accidentally type COMMITER21:55
plasma41 geirha: Yup, turns out it was nothing but bad spelling. Thanks for prompting me to check that.21:59
Minall left21:59
dunpeal Is there a good way to cherrypick a single file (or a directory) from one commit to another?21:59
Or am I stuck with `git checkout <other commit> -- paths` and then `git add; git commit`?21:59
jast ikke: the bot syncs info about channels (including membership), I'm guessing the sync got lost or delayed22:00
but since I've never tried it, let's make sure it's not a general issue22:00
.voice22:00
gitinfo jast: What? You're not even in #git!22:00
jast okay, state tracking is broken for sure22:01
I'll have to look into that22:01
plasma41 left22:04
epolanski joined22:06
oncall-pokemon left22:10
yuckey2d5 joined22:10
yuckey2d left22:12
yuckey2d5yuckey2d22:12
zebrag joined22:14
skapata joined22:17
skapata left22:17
skapata joined22:17
yuckey2d left22:19
otisolsen70 left22:20
Kamui left22:25
durham__ left22:25
DoofusCanadensis left22:33
gh34 left22:39
junktext left22:39
va5c0 joined22:39
va5c0 left22:41
palasso left22:43
va5c0 joined22:44
clime left22:44
durham joined22:48
humanface left22:48
orbyt left22:49
vysn left22:50
Acki left22:54
junktext joined22:54
durham left22:57
hbautista joined23:08
theoceaniscool left23:09
roadie joined23:14
junktext left23:14
jwillikers joined23:18
roadie left23:19
jwillikers left23:21
Xenguy left23:31
rahl- left23:31
shailangsa left23:36
va5c0 left23:43
igemnace joined23:44
Thanatermesis joined23:44
Thanatermesis left23:45
Wuzzy left23:45
Thanatermesis joined23:45
Lunatrius left23:49
EvilDMP_ left23:50
Lunatrius joined23:50
Shailangsa_ joined23:51
Codaraxis_ joined23:51
oriba left23:52
Codaraxis left23:55
Rhys left23:58
Rhvs joined23:58
gco left23:59

Logs Search ←Prev date Next date→ Channels Documentation