zzz
eyedeekay, ETA for your banlist MR to go in?
eyedeekay
Tonight I think, no later than tomorrow noon
zzz
ok, I need to wait for that before offering my version of a fix for FDLMH #468 to avoid conflicts
zzz
I'm getting better at git merging but it's still not fun
eyedeekay
OK, I'll do my best to make sure it's tonight not tomorrow
dr|z3d
what mergetool are you using, zzz?
zzz
xxdiff --unmerge3 for now
dr|z3d
is that terminal based?
zzz
no
zzz
used it for years but just discovered it handles git's diff3 format too
zzz
merge conflicts on pull is where git is very different from mtn, so it's taken a while for me to wrap my head around it
dr|z3d
so, wait, you're manually invoking xxdiff on conflicts?
dr|z3d
maybe you're happy with what you got, in which case, feel free to ignore my advice. otherwise, when you have conflicts, if you have a default mergetool configured in git, you can just invoke git mergetool and it'll sequentially open all the conflicts. and there's nothing that comes even close to meld in the ubuntu repos, head and shoulders above everything else.
zzz
thx, haven't tried that yet
zzz
how to disable git staging everything when there's a conflict?
dr|z3d
when you say staging, not sure I understand what you mean. are you asking howto revert back to whatever you had before the merge attempt, assuming you have no local workspace changes?
zzz
it automatically stages all the local changes (i.e. green in git status) except the conflicted files
zzz
at least for me
dr|z3d
so you want to merge while retaining all your local changes I guess. you could use git stash and git pop stash, maybe.
dr|z3d
or git stash pop, whatever it is.
zzz
thats what I do
dr|z3d
I always make sure I've committed everything in my workspace before merging or cherry-picking.
zzz
and on the pop, it leaves the stash there, stages the unconflicted files, and complains about the conflicted files
dr|z3d
you could also just checkout a commit, merge in that branch, and then pull the commit back into your working branch afterwards.
zzz
ok my workflow is different; I have 50-100 changed files with various WIP, soaking for days/weeks/months
zzz
all in one workspace. Test everything at once.
dr|z3d
that's not a workflow, that's carnage! :)
zzz
that's been my process for about 10 years. It's the only way to get things adequately tested.
dr|z3d
do you have a "clean" trunk branch?
dr|z3d
me, I have trunk (yours), dev, and master which is just remote. when I need to experiment, I'll create a new branch at the point where I know I'm going to mess with things, and when I'm happy I'll pull the commits back into the dev branch and probably nuke that experimental branch.
zzz
testing takes a long time; I have to test everything at once. Failures may not appear for a long time
zzz
that's the only branch I have. I don't check in WIP, even to a local branch, unless I'm doing an MR for eyedeekay to look at
zzz
yeah I get it
dr|z3d
not saying my process is any better than yours, you do you, as you'd say :)
zzz
for me the top priority is to maximize/optimize testing, because I hate testing
zzz
right now my wip is 63 files changed, 4386 lines of diff, some changes dating back a year or more, would probably be 30 different branches/MRs if split out
zzz
so I'll test some stuff for months at least
zzz
nothing goes in untested
zzz
this is a 20 year old security project, the most important thing is to not break it
dr|z3d
amen to that.
RN
dr|z3d, looking at meld...
RN
do I have to do something to connect it to git? It is just asking me for files to compare.
dr|z3d
you need to configure it as your default merge tool for git, RN. see the link I referenced for zzz above.
RN
ah... hmmm...
RN
ok, so that goes over options but no examples... I think this might help me more: stackoverflow.com/questions/34119866/setting-up-and-using-meld-as-your-git-difftool-and-mergetool
RN
(no example for meld)
dr|z3d
git mergetool --tool=meld
dr|z3d
try that.
dr|z3d
in your ~/.gitconfig file, you should see something like this under the [merge] section:
dr|z3d
[merge]
dr|z3d
tool = meld
dr|z3d
[mergetool "meld"]
dr|z3d
# Choose one of these 2 lines (not both!) explained below.
dr|z3d
cmd = meld "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED"
dr|z3d
you should be aware that meld, configured like this, will only be invoked for merge conflicts.
RN
yeah, that is similar to what was suggested on stackoverflow. They suggested a couple more lines to add.
RN
I invoked it manually and it is imho a nice tool
RN
will see when it gets triggered durring my normal builds
dr|z3d
you're unlikely to see it with git during normal operation, RN, unless you're pulling from one branch into another.
RN
well my local branch for the javadocs won't let me pull unless I stash so I guess I'll probably not see it activate
dr|z3d
you can commit to your local branch and then pull.
dr|z3d
you'll then see a conflict notification if the project build.xml changes and then you can invoke git mergetool.
RN
I've avoided commit because I didn't want to get close to accidentally pushing something. I guess it is time for me to take a closer look at git commit
RN
and in the tool, dr|z3d the arrow and the x don't have a tool tip... I presume the arrow means move the change over and the x means keep the second version of the line?