GIT Gotchas and other things that make you cry

Lions and Tigers and Bears, Oh My!

Encountered x file(s) that should have been pointers, but weren’t

We encountered this issue when trying to merge master after someone had committed a slew of PDFs. Although we couldn’t identify the exact situation that caused this problem, the result is that nobody could merge master into their branches.

Not No Body! Not No How!
Not No Body! Not No How!

It looks like this was once filed as an issue with git, itself: https://github.com/git-lfs/git-lfs/issues/1939

But amongst the threaded comments, it looks like there is a root issue with the file types that are used to compare files and that on strange and rare occasions a unicorn fart fills the git-void with pain by changing these on the server.

After several dozen attempts, I came across this gem of a command:

$ git lfs migrate import --everything --include='*.pdf'

migrate: override changes in your working copy? [Y/n] Y
migrate: changes in your working copy will be overridden ...
migrate: Sorting commits: ..., done
migrate: Rewriting commits: 100% (5940/5940), done
migrate: Updating refs: ..., done
migrate: checkout: ..., done

The pain was almost over. Let’s see how merge does, now.

$ git merge --ff-only

fatal: Not possible to fast-forward, aborting.

Hmmm… Okay. Let’s not force a fast-forward merge; let’s just do a regular merge.

$ git merge

warning: Cannot merge binary files: Deployment Scripts/CopyFiles/UpperGreatLakesSinglesChallenge.pdf (HEAD vs. refs/remotes/origin/bugfix/13032-ems-error-saving-ppc)
:
:
CONFLICT (add/add): Merge conflict in Deployment Scripts/CopyFiles/UpperGreatLakesSinglesChallenge.pdf
Auto-merging Deployment Scripts/CopyFiles/UpperGreatLakesSinglesChallenge.pdf
:
:

Then I performed a manual merge on all the files by taking the server’s file (on the right in Sublime Merge, when resolving conflicts).
But Sublime Merge couldn’t actually commit the non-changes, so I went back to the git console to wrap up tackling the lfs-merge nightmare (like a Dream Warrior to Krueger):

$ git commit

[bugfix/13032-ems-error-saving-ppc f093b0c49] Merge remote-tracking branch 'refs/remotes/origin/bugfix/13032-ems-error-saving-ppc' into bugfix/13032-ems-error-saving-ppc
See the source image

Don’t Let Your Past Define You – even if it was good

“My past is everything I failed to be.”- Fernando Pessoa Share on X

Many years ago there were dreams. I knew what I wanted. I experimented with confidence, and failed at so many different things.

What eventually drained my dreams of their vibrancy, and crushed my hopes were the adults in my life. I learned some really backward axioms, such as:

  • They’re going to blame me for it anyway, so I might as well do it.
  • They always need something to nitpick about – make it something I control.
  • Nobody looks at the reason, just the result. Heart never matters.
  • I am nothing but a nothing. I’m not a thing at all.

But deep inside there were cinders of truth that kept me and my soul alive.

  • Don’t live down to their expectations. That’s not who I am.
  • Do my best regardless that it’s never good enough for someone.
  • Give my heart to people. That is who I am.
  • They see me as nothing because they look at me through their own vampiric mirrors. Don’t let them suck my soul dry.

There’s a definition within our intrinsic selves that supersedes how others define us. But there are seeds rooted deep within, from our childhood, that grows a label around us. Beware the label.

When someone labels software as tested – nobody else spends the time to test it… duplicated work is considered a waste. This is supposedly what happened on one of NASA’s failed shuttle launches. A checkbox was marked by mistake and one small thing wasn’t checked, costing lives.

When someone labels you as bad or good, beware. A hammer is neither bad nor good, but can be used to do both. People are, in many ways, like that.

Murderers have turned soft and change their lives completely around because of a few kind words. Genuinely nice people have become killers after years of torment and bullying. Despair has a way of flipping people by its presence or absence. So does love.

When we label ourselves, we galvanize the character, we build a fixed mindset, and inevitably cause failure.

In reverse, when we tear down those labels and look deeper into who we are and what we’re capable of, we build character, set a growth mindset, and – even in the course of failure – set ourselves up for victory in the end.

This article is from the “Raw Talk on Failure” series.

Photo by A B on Unsplash

Know the Role You Serve

The interviewer vaguely described the typical messaging network: Messages are sent. Some server exists. Some apps exist . Message somehow get to users. “What does that look like?” He asked.

I asked “what do you want me to design?” then asked questions about the overall system, then started approaching the entire system. I talked about how more dire systems, like ambulance dispatches, would need to have priority while less critical systems could have messages dropped completely. Then started drawing on the whiteboard…

Partway through, he stopped me. “But what does the system look like?” I was confused. Why would he ask that unless I was off the mark. I thought I heard him say something like “If you’re a news provider and sending out a message, what goes on?”

So I thought he wanted to focus on just the responsibilities of the news provider. I started sketching how the app would work… Again he stopped me.

I asked a third time, “What is it you want me to design?” but then I added. “Am I you? Am I your company taking in the requests to send out messages or am I this news company? Am I your company trying to make a relationship with the news company? What is my role here?”

“You’re my company. What does it take for my company to deliver messages to any of my company’s devices?”

The correct course of action to any problem begins with knowing the roles of everyone involved – especially your own. Share on X

The light came on. I was listening, but I wasn’t listening to the right clues. The context was mixed up in my head. I didn’t know who I was supposed to be.

But what I didn’t know for half the interview – what kept me from addressing what my customer, the interviewer, really wanted to know was that I didn’t know myself; I didn’t know my role in the whole matter.

It was his job to make the question as vague and ambiguous and confusing as possible, and it was my job to ask the right questions to get down to the customer need. I asked many questions, but not the right ones. I heard his reply, but wasn’t listening correctly.

The first question should simply be – who are you in this system and who am I in this system? Without knowing the context of our identity, the work is either wasteful or irrelevant.

How often does this happen in our personal relationships? Someone comes to us: “My problem is yadda yadda.” What is our role here? Are we supposed to be a shoulder to cry on? A heart to just listen? An expert to offer advice? A person who takes charge to resolve the issue? So many different roles… but only one is the best role for the situation. Figure out your role first, then you’ll know how to tackle the situation.

This article is from the “Raw Talk on Failure” series.

Photo by Daniil Silantev on Unsplash