Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "merge conflicts"
Thank you dear mr. boss for fucking up our master branch by adding local changes to a 2 months outdated master branch (250 FUCKING COMMITS BEHIND), pull the remote and then just push without resolving any conflicts!!!1!!!
But thank you so much for sending me an email at 10pm asking me to resolve the conflicts.
It is 3 in the morning and it took 1 hour to get it clean.
Sometimes I want to break some necks...9
Who here uses `master` for development?
My boss (api guy) tried to convince me that was normal practice. I gently told him that it sounded crazy and very very bad.
Here's the dev path I'm enforcing on my repos:
(feature branches) -> dev -> qa* -> master -> production*
*: the build server auto-pulls from these branches, and pushes any passing builds to staging/production.
Everyone works on their own feature branches, and when they're happy with their work, they merge it into `dev`. `dev`, therefore, is for feature integration testing. After everything is working well on `dev`, it gets merged into `qa` for the testers to fawn over and beat with sticks. Anything that passes QA gets merged into `master`, where it sits until we're ready to release it. When that time comes (it's usually right away, but not always), `master` gets merged into `production`.
This way, `master` is always stable and contains the newest code, so it's perfect for forking/etc. Is this standard practice, or should I be doing something different?
Also, api guy encourages something he calls "running a racetrack" -- each dev has their own branch (their initials) and they push to that throughout the day. everyone else pulls from it regularly and pushes to their own branch. When anyone's happy with their code, they push from their (updated) branch to `qa` (I insisted on `dev` instead.)
Supposedly this drastically reduces the number of merge conflicts when pushing to an upstream branch due to having a more recent ancestor node?
I don't quite follow that, but it seems to me that merging/pushing throughout the day would just make them happen sooner? idk.
What are your thoughts?31
Me after a large Git merge, after expecting masses of merge conflicts and getting none. Life is good my friend.2
Fell like I can finally vent this now I've calmed down.
Me: You've fucked the tree again
Junior: No I haven't
Me: It says there "Fixing merge conflicts"
Junior: Well it wasn't me I wouldn't have done a merge
Me: It has your name next to it...
Junior: Well that commit wasn't there a second ago
Me: it's dated for Friday...
Junior: Well if you hadn't committed to master and blah blah blah
Me: We'll if you knew know to use git we wouldn't have this problem.13
Coworker: You've merged the wrong PR. It is broken.
Me: is it marked as broken? Is there a mail marking it as broken?
Coworker: yes. I wrote something in the chat.
I do NOT read and click every brain fart from the chat. I had the PR (as reviewer and dependent developer) open on my desk and waited for the coworker to fix his merge conflicts.
OK then, try to revert. Git reset hard. Push -f. Policy does not allow master modification. 🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕🖕
Fuck this company. Fuck the policies. Fuck them all with a chainsaw. Forced me to work 2 weeks more. 17.04 should have been my last day at this circus. Let 3 other guys go to vacation while I have fix their management's mistakes. Fuck. You. All. Eat shit and suffocate in piss.8
- Merging 300 files from one branch to another in TFS.
- No merge conflicts.
My first thought:
This can't be right. I must have done something wrong...3
So this bunch of idiots made this huge iOS app using lots of global variables, lots of spaghetti code and basically no separation between logic and UI.
Another bunch of idiots were told to take that iOS app and basically port it to Android. And they ported that same code mess, almost line by line, and adding some weird shit.
Now the HQ of the first bunch of idiots realize that the second bunch of idiots were too slow/inefficient/whatever, and they're now asking US to solve that Android mess and add another shitload of features.
The worst part of it, is that both bunches of idiots are still working on it, so we're basically forced to follow the same shitty style until the first deadline, otherwise we'd die suffocated by stinky merge conflicts. Which will happen anyway because our changes are going to overlap.
Oh, and the PM refuses to understand the disaster coming and there's six hours of time zone difference.
Fuck this shit.7
Just pushed commit #512 today.
Was a huge refactoring effort which went sooooo smoothly <3
Pull from parent branch without merge conflicts <33
No issues with deployment <333
AND i'm now on vacation 🏳️🌈❤️🏳️🌈❤️🏳️🌈
Things are perfect6
Friends their dream world: Sun, beach, cool drinks, nice car.
My dream world: No merge conflicts, one standard for all platforms, dark themes for everything.
I wish there is such thing as branch in a relationship. So that whenever a couple are having a fight, they can create a branch and work their shit out in that branch and eventually merge to the master branch.
That just costs.... more conflicts3
Holy shit balls it works (so far)
So I’ve been working on a project... well feature for the past year (yes 12 whole fucking months - anti agile I know)
And today I got to merge that bitch of a pull request into the current working branch and deploy it to UAT - no conflicts 😵I think I need to put the lottery on tonight!
And some how, by some stupid lucky roll of the dice it just works.
I have never felt so afraid and delighted in my life!6
Greetings from Denmark! Thought I would join after a lot of lurking, and tell a little story, as to how I fucked up when I started in my company.
I've been there around 10 days and had never used git besides just add, commit, and push. I was told to work in feature branches, and I did, I was playing around trying to learn, and got some merge conflicts, made a lot of unnecessary commits etc. I was told to clean it up before I merged into dev. And as I didn't know git I asked how I could do that. I was told I could force push in my branch, and that it was okay as long as it was only inside my branch. I tried that and saw my command line force pushing to all branches including dev, and master. My heart skipped a couple of beats, and I went directly to my Lead developer and asked what happend. He got a bit mad at me for pushing in dev and master, and override all the commits there had been made. I tried to explain I didn't he did not really believe me, I was so nervous. Luckily everything came back to normal with people's local branches being pushed etc. But that day I learned about git's push matching config, and my lead was luckily only mad in the heat of the moment and even apologized for getting mad. Just one of my little fuck up's in my short time as a developer7
Okay guys, this is it!
Today was my final day at my current employer. I am on vacation next week, and will return to my previous employer on January the 2nd.
So I am going back to full time C/C++ coding on Linux. My machines will, once again, all have Gentoo Linux on them, while the servers run Debian. (Or Devuan if I can help it.)
So what have I learned in my 15 months stint as a C++ Qt5 developer on Windows 10 using Visual Studio 2017?
1. VS2017 is the best ever.
Although I am a Linux guy, I have owned all Visual C++/Studio versions since Visual C++ 6 (1999) - if only to use for cross-platform projects in a Windows VM.
2. I love Qt5, even on Windows!
And QtDesigner is a far better tool than I thought. On Linux I rarely had to design GUIs, so I was happily surprised.
3. GUI apps are always inferior to CLI.
Whenever a collegue of mine and me had worked on the same parts in the same libraries, and hit the inevitable merge conflict resolving session, we played a game: Who would push first? Him, with TortoiseGit and BeyondCompare? Or me, with MinTTY and kdiff3?
Surprise! I always won! 😁
4. Only shortly into Application Development for Windows with Visual Studio, I started to miss the fun it is to code on Linux for Linux.
No matter how much I like VS2017, I really miss Code::Blocks!
5. Big software suites (2,792 files) are interesting, but I prefer libraries and frameworks to work on.
For future reference, I'll answer a possible question I may have in the future about Windows 10: What did I use to mod/pimp it?
1. 7+ Taskbar Tweaker
3. Classic Start (Now: Open-Shell-Menu)
Enhanced text editor I like a lot more than notepad++. Aaaand it has a "vim-mode". 👍
Three way diff viewer, that can resolve most merge conflicts on its own. Its keyboard shortcuts (ctrl-1|2|3 ; ctrl-PgDn) let you fly through your files.
8. Link Shell Extensions
Support hard links, symbolic links, junctions and much more right from the explorer via right-click-menu.
Neither as beautiful as Conky, nor as easy to configure or flexible. But it does its job.
Of course this wasn't everything. I also pimped Visual Studio quite heavily. Sam question from my future self: What did I do?
1 AStyle Extension
2 Better Comments
Simple patche to make different comment styles look different. Like obsolete ones being showed striked through, or important ones in bold red and such stuff.
4 Atomineer Pro Documentation
Alright, it is commercial. But there is not another tool that can keep doxygen style comments updated. Without this, you have to do it by hand.
5 Highlight all occurrences of selected word++
Select a word, and all similar get highlighted. VS could do this on its own, but is restricted to keywords.
6 Hot Commands for Visual Studio
This ingenious invention colorizes brackets (aka "Rainbow brackets") and makes their inner space visible on demand. Very useful if you have to deal with complex flows.
Come on! 2018 and Visual Studio still outputs monochromatically?
That's it, folks.
No matter how much fun it will be to do full time Linux C/C++ coding, and reverse engineering of WORM file systems and proprietary containers and databases, the thing I am most looking forward to is quite mundane: I can do what the fuck I want!
Being stuck in a project? No problem, any of my own projects is just a 'git clone' away. (Or fetch/pull more likely... 😜)
Here I am leaving a place where gitlab.com, github.com and sourceforge.net are blocked.
But I will also miss my collegues here. I know it.
Well, part of the game I guess?8
Ran couple of interviews today I don't think I'm ever gonna forget this guy: He was explaining a time he worked in a team and used version control. I asked how he handled merge conflicts his response:
'If there are merge conflicts I delete their work and use mine, my code is probably better anyway'.4
Today I was talking about merge conflicts with a group of devs. One of them asked if any of us had ever rushed to merge a PR before another dev could merge their PR, knowing there were going to be conflicts. Some were more ashamed to admit it than others, but in the end everyone was guilty of doing it at least once :)
Anyone ever do that to avoid being the one who has to resolve a conflict?3
Not usually a person to rant about spacing and conventions but this is great.
4 devs, all using IntelliJ. Now IntelliJ auto-changes tabs to spaces which is nice, and GitHub doesn’t really care as long as the spacing is consistent. Now here is the fun part: 2 devs have 4 spaces per tab, 1 has 3 spaces, 1 has 5 spaces.
GitHub merge conflicts everyWHERE.
And yes it isn’t the old 2 vs 4 spaces. It’s 3 vs 4 vs 5 somehow6
Tunes throughout the work day...
Queen, Don't Stop Me Now
Working on same bug for hours:
Muse, Supermassive Black Hole
Jay Z, 99 problems
In the zone coding:
All bugs squashed, deployed, going home:
Louis Armstrong, What a Wonderful World1
Why is it so hard for a person to admit that they're at fault and listen for a change,
For the nth time I told a certain developer to install a git gui, the answer is always the same,
"It's such a hassle to install one"
You know what is a fucking hassle?
Fixing your fucking mess is a hassle,
Resetting the wrong branch you overwrite is a hassle,
Cleaning up your merge conflicts is a hassle,
And doing all of the above just before going home is a fucking hassle,
Fuck it, it's only a couple of days before I left for good anyway,
Other Dev: I worked really hard over the weekend to get the issue fixed, I raised a PR but it has a zillion merge conflicts. Would you mind taking a look at it?
Me: Ok. *Changes base branch away from Master.*
Other Dev: Whoa! How’d you fix them that so fast???
So I got my first chance to resolve merge conflicts today.
*Shouldn't be too bad. There are only like 8 conflicts!*
me: <senior>, I'll get it. Won't be long.
[some time later]
*This fucking sucks. But first compile!*
[another project that depends on the current one breaks]
[initial project starts throwing its own errors]
I understand the merge conflict rants now. Looks more clear-cut than it is. How do you people handle it on big projects without quitting??2
When some one at the company decides to branch off from the main codebase and end up with several outdated and separetely modified branches for two years.
Yeah nice work genius and good luck with resolving over 250 files of merge conflicts.
Just kill me now 😭1
This whole Microsoft & GitHub thing is how it begins:
oh it's really cool, Microsoft is adding some cool features we've been missing for a while, GitHub is still great
Alright, there's this new `msgit` that has some really cool features for rebasing and merge conflicts, I won't need to worry about fucking up my git history
`msgit` is not compatible with `git` and GitHub requires us to use it, but what can we do, all our code and build triggers are set up..
I don't want to paint dark clouds, but I heard this theory at work and it makes sense that Ms would take it in a direction where people are locked in to their ecosystem. It won't happen immediately, but all signs point to this.
We're having a mini-hackathon at our school last Saturday as a final exam of our Web Engineering course, showcasing what we learned throughout. The theme is all about helping university students gain their productivity and improve their interaction with technology.
Me and my team tried to create a note-sharing platform for students. We loved the idea and we're so excited to create it. But excitement turned into shit hole during development.
A fuckton of merge conflicts, divisive code conventions, and usage of god-awful Bootstrap for front-end came in. 😱😬😣
Despite these things, we are able to win the hackathon (i still can't believe we won). but he worst part of winning is that the prize is not cash nor the internship (the judges are from the company who somehow looks for interns), but fucking useless GIFT CARDS!!
But in the end, we're proud of it. I thought that it will be just a concept but in the end, it became real and it turned out to be great. ☺4
Yesterday I had to merge new features. As these have been developed by one developer, I thought "hey, that'll be no problem". Little did I know that every one of the 6 branches had merge conflicts *sigh*. These merge conflicts were so severe, that there where sometimes two methods in the same class with the same name doing different stuff in each branch... Normally I would tell her to fix her stuff but as she is on vacation right now, I had all the fun resolving the conflicts of code I hadn't written and repairing the failing unit tests she wrote.
The best thing is that our software will be featured in one of the most renowned business magazines at the end of the week while simultaneously being presented at a congress in Berlin in front of over thousand of potential new customers. So these knew features have to be running stable in production by then... Needless to say I had a great day yesterday and will have an amazing upcoming week 🎉3
Today is a great day ! Deadline is tomorrow, fixed all the issues, looks like everything works...
CONFLICT (content): Merge conflict in xyz
CONFLICT (content): Merge conflict in abc
Automatic merging failed; fix conflicts and then commit the result.
I hate my life :)
I just broke out of merge-hell.... It was a mere 2 and a half hours... But my migraine says it was eternity.... 😶
There is this project where the develop branch is "discontinued" because this moron "finished" a feature that is all fucking broken and I could not figure out how to solve all those merge conflicts...
I just gave up and told my stupid boss who just nods and laughs at everything... If it ever comes up I'm gonna tell them to get the fucker to solve it.1
* Builds Project and Hosts it *
* thinking * : * ' I don't really need to push to Master, I'll just push it to the deployed branch *
Me: * tests project from host *
Me: * sees a bug, fixes it and rebuilds the project, hosts it and pushes code to deployed branch *
Colleague: Dude did you see the Typos you made? Fix them!
Me: In my defence, I wrote this at 4am in the morning, did not sleep for 2 days.
Colleague: Don't Care, fix it.
Me: *Creates Hotfix Branch from Master*
* INSTALLS DEPENDANCIES AND FINDS OUT A NEW VERSION IS OUT AND UPDATES THAT AS WELL *
* Runs Project and finds out it's not the hosted version. *
* Merges Deployed Brunch to Hotfix Brunch and this happens *
Error Message: Unexpected token
620 Merge Conflicts
From a Dev at my old place: Don't use git for such a small project, I think we should use email to send our code to each other.
Turned out that this "small project" was a piece for a larger project.
Also turns out there's such a thing as merge conflicts outside of git.
Our code was broken for 3 days once because of his shitty advice.2
*working at a project, currently creating commits and pushing to remote
I created an early PR with a title [UNFINISHED] and [NOT YET DONE]. I'm really not finished yet. lots of stuff still need to be committed and pushed to repo
And suddenly, I find out that my team mate - just out of the blue without any prior warning - MERGES THE PULL REQUEST
"oh hey there are conflicts in the pr you made"
YEAH WELL MAYBE TRY GETTING YOUR HEAD OUT OF YOUR ASS WHAT IS WRONG WITH YOU ARE YOU EVEN SANE
So now what happened is half of my commits are merged, he didn't tell me, i pushed more commits, branch recreated, and then he reverts the merge. so now everything is really messed up :)AS)D(F)AEF)SDF)AW)sfdjsigkl;zfghlkkj ghaslkj;gabsd;lkgjabslkfgh GET YOUR HEAD OUT OF YOUR ASS I WANT A PROMOTION4
The one skill I know that I am really proud of is GIT.
Put me into trouble with merge conflicts.
Saved my life with its version control.
Always had an adventurous ride with Git. Hope to have many more such rides and get to learn more about you.
Wooooooow i forgot how some people are kind of enaugh.
Today i had terrible day resolving a looooooooot of android merge conflicts by updating patched repos because some were updated and some werent.
And well i texted a maintainer of the repos if he could find some way to make the source buildable again by downgraiding the sources.
Maaaaaaan was i suprised when he sent me an python script and all the ID of commits in each repo and which one was latest so i can make it buildable.
Maaaaaan if everybody was like this then the world would be a loooooooot better place.
Saved like 2 weeks of time that i would have spent on git resolving all the conflits.
Now im building and i can fix SElinux issues finally.
OHHHHHH im so happy.
Take your time with merge conflicts, and put the entire file in another editor in case you really mess up.3
So there is a 50/50 chance I am getting flamed af tomorrow during code review because of my branching/merging actions on thursday and friday... Merge conflicts... We all love them...3
INTELLIJ YOU PIECE OF SH*T, I CLICKED "SMART CHECKOUT" NOT MERGE 2 UNRELATED BRANCHES, SCREW UP MY MASTER AND DON'T LET ME RETURN UNTIL I FIX ALL MERGE CONFLICTS.5
Trying to resolve merge conflicts and you cant remember which changes are the ones you want to keep. Lesson learned, make sure your pull requests dont sit waiting for weeks while master is happily being worked on.2
The day we had to have an app ready for an upcoming demo. Management said everything needed to be done by the end of the day. My change was done, but was dependant on another change being merged first. I had been in the office since 8am. It didnt get merged until 5pm. I was in the office until 8pm trying to fix the insane merge conflicts. In the end i gave up and went home. The next day we discovered that the "deadline" was made up anyway so we still had time. I wanted to flip every single table in that office.1
When you offer to help out a fellow coworker on the top priority feature he is developing and he just sends you the branch and stops working on it.2
Created a merge request for a big issue last week. Some dumbass co-workers merged several other stuff for tiny shit issues that lead to many merge conflicts now because they didn't pull before..
Nevermind.. will be merging develop into my branch for the third time now.. Got already 20h of extra work because no one minds to merge my request because it's so big and someone might have to check the commit messages what really happened..
Conflicts suck! Co-Workers suck!
Typical Git work flow on a feature branch:
Commit#1 : The silly feature itself that took 10 minutes to code
Commit#2 : Added unsaved files
Commit#3 : Fix unit tests
Commit#4 : Fix
Commit#5 : Fix
Commit#6 : Fix
Commit#7 : Various Fix
Commit#8 : Added unsaved files
Commit#9 : Merge
Commit#10 : Fixed unit tests
Commit#11 : Code Review tasks
Commit#12 : Revert- Code Review tasks
Commit#13: Refactor part 1
Commit#14: Refactor part 2
Commit#15: Deleted unit tests
Commit#16: Added checking for null
Commit#17: Completely different feature's bugfix
Commit#18: Code review spacing corrections
Trying to merge, then merge conflicts.....2
I was minding my own business, fixing merge conflicts for my project lead when it struck.
There, in the middle of a React.js component, was a table, used not for displaying data, no, but for styling a form, which was not a form, but a series of table rows.
I feel sick
I have a co-worker who won’t stop “refactoring” our codebase. He will go on a long tangent — under the guise of working on a proper story — and then reveal proudly after a few days that he now introduced a new middle-layer into the code which will help us such and such.
I have never seen any benefit from this. I think sometimes cleaning up variable names is nice, but a lot of the things just add noise and complexity. He’s a junior dev, I’m a senior dev. My progressional opinion is that he is doing a bad job. Management doesn’t know the full extent and the lead programmer scolds him every now and then but in the end let’s the code changes pass code review. “It has already been implemented so what’s the harm”.
Then the rest of us are stuck with horrible merge conflicts. I recently noticed that some new business-important unit tests that I wrote were mysteriously gone. Oops — lost in some misguided refactoring I guess. I’m assuming they were failing after the refactor, so clearly they had to go... Fortunately the underlying logic still works I think.
His main tactic in all of this seems to be to just use argumentative stamina. He will lose discussion after discussion but doesn’t seem to care. He’ll just talk and talk. And the in the end the lead tech gives in. And/or doesn’t have the energy to catch the error introduced.
I swear, the company would be better off without him. Maybe even better if we keep paying him but he just cleans the toilets instead. Sometimes I almost believes he gets up in the morning to come to work and just fuck with people all day.2
My "senior developer" colleague just committed 300Mbs worth of node modules in addition to static files bundle. So not only I have to wait 20mins for the changeset to download on this god damned internet over barrels connection but also resolve merge conflicts on 100+ files. You think that was a mistake? Oh no I've asked him about it and it was intentional ...1
What if all devs worked together to create a programmed God which only obeys devs? And hates bosses....
I think we can do it guys!
Ps. Bagsie not dealing with merge conflicts.10
Made lots of features to a side project that I was gonna publish in uni. There was some merge conflicts. And I tried to fix by copying files from a backup of the repo I was using.
Accidentally deleted the latest repo instead of the backup. All additions were uncommitted.
That was when I started taking special care with VCS
How to deal with merge-conflicts:
1. You don't
2. Just clone the whole repo anew again and start over dude
Why do some developers rebase or resolve merge conflicts when you can just email each other changes and force push?4
Merging one git branch into another when it conflicts an added line or function.
Like really? You can't handle ONE LINE being added?6
Just happened today!
So since this morning we've been trying to get our website ready for UAT deployment Monday next week, even though we only were told of it yesterday. Since we had some critical merge conflicts to unscrew on our dev branch for promoting to UAT, we sent a warning to everyone on our hipchat group
Dev team: @all please don't commit anything to the repo for an hour or so while we get the branch good for dev and uat build
Tech lead: ok
That should be enough warning, right? Surely our tech lead, who has been piling up our scope creep trying to please our stakeholders, understands well enough not to do a single goddamn thing on our repo until we sort it out, right?
10 minutes later our tech lead pushes several changes that not only break our builds but also remove all our configuration transformations. I just stormed out of the office to avoid sending her on a one-way ticket to slapsville and fuckyoutown. Geez goddamn louise.
Questions/best practises for git?
- use present tense in commit messages. (why though?)
A friend of mine also starts his commit messages with either [Task] or [Cleanup]. Useful for finding Commits in Gitlab etc, because only the first line is shown from the message.
Also, one teacher recommended the usage of branches and the other didn't because of alot of potential merge conflicts when working in a Team or a larger Collaboration. What are your thoughts?
Sorry for the messy post, have a hangover5
"No merge conflicts, ready to commit."
Such sweet words from TortoiseHg, and it's not even valentine's day!
Just found out that something like this would actually work in Java:
int a = 2;
int b = 1;
b = 2;
I know about the variable scoping part, but that doesn't means if the language allows this kind of shitty code you should use it.. Fuck took me 15 mins to resolve the merge conflicts. As during merge the 1st case was partially removed. And the code was filled with these kinds of logic. This could have been done in a minute without the shitty code..5
npm has to be the single worst package manager on the planet... Trusting devs to use semantic versioning properly and forcing devs to trust authors of dependencies to use it properly is nothing short of insane. The package-lock that is "supposed to be version controlled" causes *constant* merge conflicts. Using shrinkwrap in its place is borderline useless because it Doesn't. Lock. High. Level. Dependencies.
I don't know who designed this, but I want to give them a very bad day for every hour I've spent trying to lock versions correctly on a live project.
Not to mention requiring root by default to install things that can just run whatever they want is ludicrous.3
That moment when you go to merge a branch and realize no one rebased for 3 weeks and your whole day will be merge conflicts...1
Got through 4 hours of merge conflicts before pushing to prod... I imagine this is how doctors feel during an operation... #ef
Yesterday i went coding, tired as hell. I told myself “Atleast i get smth done“ i was wrong. Redid everything and now expect many merge conflicts when i get home1
When you git pull and there are merge conflicts and you commit without resolving conflicts and you push 😂😂1
To branch or not to branch? (in developing software multiple features, releases...) (git)
I've been searching a lot of posts and info on the internet ( http://bit.ly/2kBLcar http://bit.ly/197szRP ). In summary, some people say it is better to branch and others the opposite. What do you think?
My conclusion was: let's branch but let's merge periodically to minimize merge conflicts.1
My work product: Or why I learned to get twitchy around Java...
I maintain a Java based test system, that tests a raster image processor. The client is a Java swing project that contains CORBA bindings to the internal API of the raster image processor. It also has custom written UI elements and duplicated functionality that became available in later versions of Java, but because some of the third party tools we use don't work with later versions of Java for some reason, it's not possible to upgrade Java to gain things as simple as recursive directory deletion, yes the version of Java we have to use does not support something as simple as that and custom code had to be written to support it.
Because of the requirement to build the API bindings along with the client the whole application must be built with the raster image processor build chain, which is a heavily customised jam build system. So an ant task calls out to execute a jam task and jam does about 90% of the heavy lifting.
In addition to the Java code there's code for interpreting PostScript files, as these can be used to alter the behaviour of the raster image processor during testing.
The server isn't much better though. It's a tomcat based application that was written by someone who had never built a tomcat application before, or any web application for that matter and uses raw SQL strings instead of an orm, it doesn't use MVC in any way, and insane amount of functionality is dumped into the jsp files.
It too interacts with a raster image processor to create difference masks of the output, running PostScript as needed. It spawns off multiple threads and can spend days processing hundreds of gigabytes of image output (depending on the size of the tests).
We're stuck on Tomcat seven because we can't upgrade beyond Java 6, which brings a whole manner of security issues, but that eager little Java updated will break the tool chain if it gets its way.
Between these two components we have the Java RMI server (sometimes) working to help generate image data on the client side before all images are pulled across a UNC network path onto the server that processes test jobs (in PDF format), by reading into the xref table of said PDF, finding the embedded image data (for our server consumed test files are just flate encoded TIFF files wrapped around just enough PDF to make them valid) and uses a tool to create a difference mask of two images.
This tool is very error prone, it can't difference images of different sizes, colour spaces, orientations or pixel depths, but it's the best we have.
The tool is installed in both the client and server if the client can generate images it'll query from the server which ones it needs to and if it can't the server will use the tool itself.
Our shells have custom profiles for linking to a whole manner of third party tools and libraries, including a link to visual studio 2005 (more indirectly related build dependencies), the whole profile has to ensure that absolutely no operating system pollution gets into the shell, most of our apps are installed in our home directories and we have to ensure our paths are correct for every single application we add.
And... Fucking and!
Most of the tools are stored as source bundles in a version control system... Not got or mercurial, not perforce or svn, not even CVS... They use a custom built version control system that is built on top of RCS, it keeps a central database of locked files (using soft and hard locks along with write protecting the files in the file system) to ensure users can't get merge conflicts by preventing other users from writing to the files at all.
Branching is heavy weight and can take the best part of a day to create a new branch and populate the history.
Gathering the tools alone to build the Dev environment to build my project takes the best part of a week.
What should be a joy come hardware refresh year becomes a curse ("Well fuck, now I loose a week spending it setting up the Dev environment on ANOTHER machine").
Needless to say, I enjoy NOT working with Java. A lot of this isn't Javas fault, but there's a lot of things that Java (specifically the Java 6 version we're stuck on) does not make easy.
This is why I prefer to build my web apps in python or node, hell, I'd even take Lua... Just... Compiling web pages into executable Java classes, why? I mean I understand the implementation of how this happens, but why did my predecessor have to choose this? Why?2
Recently i switched from using git with gui tools to just console, and love the speed and reliability increase, but guys do you really resolve merge conflicts in console? Is it effective/worth getting used to?4
When two devs don't properly communicate that they are working on the same file, fixing the same issue, committing it to git at almost the same time causing merge conflicts and real life conflicts because one dev thinks their code is better than the other dev...3
Coworker just showed me how he avoids merge conflicts and I'm undecided on it. We use feature-branch workflow, so if a feature takes a long time to finish, it may mean merging master multiple times. He avoids it by stashing changes instead of committing them, then when he needs to merge master into the branch it's still clean. When the feature is done and he's ready to commit, he pops the changes and git diff shows all the changes before you push and you just change what you need instead of being forced to use the horrible merge software.
There must be problems with this, right? This seems too easy for it not to be the standard.6
Instead of fighting spaces vs tabs
Can we all agree to set our editors to use spaces for tabs?
I doubt anyone here likes dealing with those merge conflicts!2
Management wanted all features finished by close of business yesterday to start testing before a demo next week.
I started work at 8am to get my task out of the way early. Unfortunately there was another persons task that mine was dependant on. I kept telling people it needed to be merged so i could integrate it with my changes.
It was merged at 5pm.
I was still fixing merge conflicts at 8pm. 😑1
about 12 hours, from 8am - 8pm
We were working on an iOS build for a demo and were told that day was the deadline for having code merged. I got kinda shafted cos I needed someone elses code merged before I could finish mine. It got merged at like 5pm and then everyone went home leaving me with a ton of merge conflicts to deal with. I gave up at 8pm and went home. Found out the next day that the deadline was horse crap anyway....1
Waiting to merge the rest of the team’s new code because you don’t want to deal with migrating your test account to a new backend until your feature’s ready, finally finishing your feature (!) and then seeing 100+ merge conflicts and realizing you‘re better off just re-implementing all your feature code into a new branch, & deleting every trace of your old branch so nobody sees the 1000+ merged commit mess you’ve made -_- today was supposed to be easy...
WHY WOULD ANYONE NEED THREE DEPENDENT SUBMODULES ANYWAY?!?! 😩1
When a junior developer forks new feature branch from his old feature branch and not from develop branch causing merge conflicts later!1
One thing I absolutely hate is resolving merge conflicts but if Git wouldn't have been there, I would have not liked that..
Waiting for code reviews from the lead dev. Often it ends with a branch sitting untouched for weeks and becomes a pain of merge conflicts.3
I just picked up a hobby project which I hadn't worked on in a while and started doing some major refactoring. However, I forgot to pull before I started and didn't realize that I made some updates on a different pc. Then as I wanted to push a ton of changes I noticed... I didn't even attempt to merge because it was one giant pile of shit conflicts - and I didn't remember what changes I had made earlier. So I decided to say fuck it and
$ git force --push
Feels *so* much better than pulling my hair out over conflicts :P2
Things I have come to expect in my future since being on DevRant: shitty timelines, both funny and cruel office pranks, PMs who have no idea what they are actually managing, clients and some coworkers not knowing what my time and work is worth, merge conflicts for reasons unknown1
This is so fucking stupid. Fuck. When they log defects on jira for different issues on the same page but in different tickets I end up having merge conflicts with myself. Like are you fucking kidding me?
when you merge changes from other branch, made by other team, and see that huuuuge old project is now basing on dependency injection instead of one singleton- manager approach. Even merge conflicts look beautiful!
I have a git feature branch with my commits but also have merged the changes from the main branch to resolve merge conflicts before PR.
But now need to create a special release with just my changes.
So I think have to cherry pick all my commits on my branch some the last Release. How can I do that?
Develop (others) + Feature => Develop
Want to create new branch
Last Release + Feature (but only my commits since last Release)4
getting tons of fucking merge conflicts on rebasing remote branch with current master because that mockerfucking code review is still pending
Had a new dev take us to merge conflict hell due to rebasing... we have meeting saying we are going to do git flow.....
manager who agreed makes branch project/releaseName based off of develop only to have us mr to that branch to then mr back to develop....
Had massive conflicts mr into that branch (i kept up to develop) and then had conflicts mr that branch to develop........ on a sunday night... great2
Hello World! Question, what do your team usually do on the last day of work? We prefer push and merge our project branches and resolve conflicts, because nobody wants to write code 🤣1
Just rebase a merge conflicts with LFS enable. What a fucking nightmare. And bitbucket, please eat a dick you useless cunt.