The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,861 other subscribers

Archive for the ‘DVCS – Distributed Version Control’ Category

Git (even recent versions) hanging after “Resolving deltas: 100%”

Posted by jpluimers on 2022/09/29

If you ever come across git hanging after completing “Resolving deltas: 100%“, then remember this can still happen with recent git versions; the below output was with git version 2.24.1.windows.2.

C:\bin>git clone https://wiert@gitlab.com/wiert.me/private/Windows/bin.git
Cloning into 'bin'...
remote: Enumerating objects: 74, done.
remote: Counting objects: 100% (74/74), done.
remote: Compressing objects: 100% (54/54), done.
remote: Total 1063 (delta 30), reused 39 (delta 15)
Receiving objects: 100% (1063/1063), 26.74 MiB | 516.00 KiB/s, done.
Resolving deltas: 100% (385/385), done.

or (after pressing Ctrl-C):

C:\bin>git clone https://wiert@gitlab.com/wiert.me/private/Windows/bin.git
Cloning into 'bin'...
remote: Enumerating objects: 74, done.
remote: Counting objects: 100% (74/74), done.
remote: Compressing objects: 100% (54/54), done.
remote: Total 1063 (delta 30), reused 39 (delta 15)
Receiving objects: 100% (1063/1063), 26.74 MiB | 516.00 KiB/s, done.
Resolving deltas: 100% (385/385), done.
fatal: index-pack failed

Retry after a while

Sometimes this is as easy as waiting until the remote system comes to its senses. In this case, waiting some 8 hours resolved it:

C:\bin>git clone https://wiert@gitlab.com/wiert.me/private/Windows/bin.git
C:\bin>git clone https://wiert@gitlab.com/wiert.me/private/Windows/bin.git
Cloning into 'bin'...
remote: Enumerating objects: 74, done.
remote: Counting objects: 100% (74/74), done.
remote: Compressing objects: 100% (54/54), done.
remote: Total 1063 (delta 30), reused 39 (delta 15)
Receiving objects: 100% (1063/1063), 26.74 MiB | 748.00 KiB/s, done.
Resolving deltas: 100% (385/385), done.

In my case this worked, even though GitLab did not show any problems in their status history: [WayBack] GitLab System Status History.

I waited (and succeeded) because of [WayBack] git – How to solve’fatal: index-pack failed’? – Stack Overflow.

Check the index and get the most recent

Some links that I want to check out later:

Searches

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management | Leave a Comment »

Don’t fall for the golden hammer: avoid git empty commits, especially for kicking off parts of your CI/CD

Posted by jpluimers on 2022/08/16

A while back Kristian Köhntopp (isotopp) wrote a blog post after quite a Twitter argument where he poses against using git empty commits. I’m with Kris: don’t use them for anything, especially not for kicking off your CI/CD.

Basically his blog post is all about avoiding to think you have a golden hammer, and avoid falling for the Law of the instrument – Wikipedia.

Originally, Abraham Maslow said in 1966:

“I suppose it is tempting, if the only tool you have is a hammer, to treat everything as if it were a nail.”

For me this has all to do with preventing technical debt: find the right tool to kick your CI/CD pipeline after part of that chain somehow malfunctioned is way better than polluting the commit history with empty commits.

His blog post: [Wayback/Archive.is] Empty commits and other wrong tools for the job | Die wunderbare Welt von Isotopp

The most important bit in it:

And since we are talking about CI/CD pipelines: Don’t YAML them. Don’t JSON them. Don’t XML them.

Programming in any of these three is wrong use of tooling, and you should not do it.

  • YAML, JSON and XML are for declarative things.
  • Python, Go and Rust are for procedural things.
  • Bash is for interactive use only.

Use the proper tooling for the job. Be an engineer.

This very much reminds me of an Entwickler Konferenz keynote a long time ago, where Neal Ford made the point that most software engineers act very much unlike what is expected from traditional engineering way of operating where the engineer is both responsible and liable for his actions.

The start of the Twitter thread: [Archive.is] Kristian Köhntopp on Twitter: “A lot of people right now that git is an API and triggering CI/CD pipelines with empty commits replaces the equivalent of a Kubernetes controller for their fragile pile of bash in git triggers. This is broken and begets more brokenness. Evidence:… “

The tweet that started the subtweet: [Archive.is] Florian Haas on Twitter: “(For anyone wondering, what’s nice about this one is it works in any CI. So you don’t have to remember how to manually kick off a GitLab CI pipeline or GitHub Action or Zuul job, you just push an empty commit and off you go.)”

Other relevant tweets:

Yes, you want to avoid shell too (anything like for instance sh, ash, dash, bash or zsh), but you have to know it (and understand why to avoid it) as often it is the only interactive way to access systems from the console.

And of course Kris also wrote a big document on that too, which is available as full PDF (Wayback), full HTML (Wayback) and chaptered HTML Die UNIX Shell /bin/sh.

But more importantly, Kris wrote [Wayback/Archive.is] Using Python to bash | Die wunderbare Welt von Isotopp which is about using Python to do things you might be tempted to do in the shell. It quotes

Shell is a thing you want to understand and then not use, because you learned to understand it.

which is from the German post in thread [Wayback/Archive.is] Bashprogrammierung, wo gehts am besten los which quotes Kris’ 1998 message:

From kris Tue Sep 1 11:26:12 1998
From: kris
Newsgroups: de.comp.os.unix.misc
Subject: Re: Shell-Frage, find, xargs, kopieren von vielen Dateien
References: <6seh24$q9a$2...@nz12.rz.uni-karlsruhe.de>
From: kr...@koehntopp.de (Kristian Koehntopp)
Alignment: chaotic/neutral
X-Copyright: (C) Copyright 1987-1998 Kristian Koehntopp -- All rights
reserved.
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

Marc.Hab...@gmx.de (Marc Haber) writes:
>mir ist das ganze Zeug mit der Shell, find, xargs und Konsorten noch
>reichlich verschlüsselt.

http://www.koehntopp.de/kris/artikel/unix/shellprogrammierung/

>xargs hin oder sollte ich besser ein Perlskript schreiben?

Verwende Perl. Shell will man koennen, dann aber nicht verwenden.

Kristian

–jeroen

Posted in *nix, *nix-tools, ash/dash, ash/dash development, bash, bash, Conference Topics, Conferences, Continuous Integration, Development, DVCS - Distributed Version Control, Event, git, Power User, Scripting, sh, Sh Shell, Software Development, Source Code Management, Technical Debt | Leave a Comment »

GitKon Sept 22 – 23, 2021 – Virtual Git Conference | Presented by GitKraken

Posted by jpluimers on 2022/07/12

GitKon was a cool virtual conference about git and the git ecosystem: [Wayback/Archive.is] GitKon Sept 22 – 23, 2021 – Virtual Git Conference | Presented by GitKraken

Navigation was a bit hard because of the visual overload on the site (look at the various Archive.is archivals), so here is the outlined list of sessions with the rough timestamps in the below live recordings:

Global sitemap:

Live recordings are below. Hopefully they will last and per session splits will have become available.

None of them are at listed at [Wayback/Archive.is] www.youtube.com/c/Gitkraken/videos.

Via: [Wayback/Archive.is] Attendee Registration Thank You – GitKon 2021

–jeroen


Day 1 live recordings

Day 2 live recordings

Posted in Development, DVCS - Distributed Version Control, git, Mobile Development, Software Development, Source Code Management, Web Development | Leave a Comment »

Moving an existing GitLab project into a new subgroup is called “Transferring”

Posted by jpluimers on 2022/06/14

Turns out the “slug” for a project… the part of the URL after the GitLab server domain name is made up of the “namespace” and the project name. The name space is the group/subgroup path, so I was

Via [Wayback] git – Moving an existing GitLab project into a new subgroup – Stack Overflow

Turns out the “slug” for a project… the part of the URL after the GitLab server domain name is made up of the “namespace” and the project name. The name space is the group/subgroup path, so I was looking to transfer project to new namespace.

Transferring the project to a different namespace means re-typing the project name during the transfer. You can do this using copy & paste.

The documentation is under [Wayback] Project settings: Transferring an existing project into another namespace | GitLab.

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, GitLab, Source Code Management | Leave a Comment »

version control – Migrate from bitbucket to GitLab – Stack Overflow

Posted by jpluimers on 2022/05/24

For my link archive: [Wayback] version control – Migrate from bitbucket to GitLab – Stack Overflow

Documentation: [Wayback] Import your project from Bitbucket Cloud to GitLab | GitLab

–jeroen

Posted in BitBucket, Development, DVCS - Distributed Version Control, git, GitLab, Software Development, Source Code Management | Leave a Comment »

Git Explorer: a cool tool to visually learn git commands

Posted by jpluimers on 2022/03/03

This is sooooo cool: [Wayback] Git Explorer

GitExplorer: Find the right git commands you need without digging through the web

What I like is the simple clean UI with a two step selection of what git functionality you want to use followed by a simple usage and explanation.

Very well suites for both referencing and interactive learning.

Bonus: it is open source at [Wayback/Archive.is] summitech/gitexplorer: Find the right git commands without digging through the web..

Via: [Archive.is] Marko ⚡ Denic on Twitter: “You can find the right git commands without digging through the web. “

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, GitHub, Software Development, Versioning | Leave a Comment »

Great git videos on YouTube by @shanselman (thanks @simongeering)

Posted by jpluimers on 2021/11/11

[Archive.is] simon geering on Twitter: “Thanks to @shanselman for creating these great Git Videos. As a senior dev starting to mentor/teach tech skills this is very helpful. What tool do you use for the green arrows and other overlays please? Git 101; GitHub PRs “:

Embedded videos below the fold.

–jeroen

Read the rest of this entry »

Posted in Development, DVCS - Distributed Version Control, git, GitHub, Software Development, Source Code Management | Leave a Comment »

@adamsand0r drew up a few sketches of design decisions needed to be taken when building a #gitops-based CD pipeline

Posted by jpluimers on 2021/11/10

Great decision diagrams: [Archive.is] Thread by @adamsand0r: good morning Twitter! I drew up a few sketches of design decisions needed to be taken when building a #gitops-based CD pipeline. let me know…

Via [Archive.is] Ian Miell on Twitter: “Oh man, these diagrams will make the hell of architecting GitOps pipelines easier to reason about… Thread 👇… “

[Archive.is] Ádám Sándor on Twitter: “good morning Twitter! I drew up a few sketches of design decisions needed to be taken when building a #gitops-based CD pipeline. let me know what do you think… #gitopsdecisions”

–jeroen

via

Posted in Development, DevOps, DVCS - Distributed Version Control, git, Source Code Management | Leave a Comment »

No GitHub: re-introducing an Inbox or Direct Messages is a bad idea!

Posted by jpluimers on 2021/08/18

Yesterday I published about Yet again, GitHub violates the Web Content Accessibility Guidelines by stealing a key: not it is the dot (.), and this week some feelers were put out for a kind of GitHub Inbox / Direct Message feature:

[Archive.is] GitHub Projects on Twitter: “What if there was 📨 DM/inbox feature on GitHub?”

There already is gitter.im (which is public instant messaging around GitHub repositories), and people have enough trouble managing all their incoming private message streams (be it paper/email inbox, social media and others), in large part because of SPAM and harassment messages.

It wasn’t by accident that the Private Messaging at GitHub feature was ditched almost a decade ago during [Wayback/Archive.is] 2012 Spring Cleaning | The GitHub Blog:

Private Messaging, however, was a step backwards: nobody wants another inbox. And a sub-par one, at that. Email is still the best way to contact someone.

Today we’re removing Private Messaging from GitHub. If you want people to contact you, please provide a public email address for your profile.

So I’m with all these:

Yes, I know [Archive.is] Tierney Cyren on Twitter: “A reminder that this account doesn’t actually represent GitHub nor any feature planning GitHub is doing… “, but I want to make absolutely clear to GitHub that another private message feature is a very bad idea.

–jeroen

Posted in Development, DVCS - Distributed Version Control, GitHub, Source Code Management | Leave a Comment »

Frank A. Krueger on Twitter: “I made a build status IoT thing! Automatically polls @bitrise and is even Alexa controlled (for brightness and to turn off). Now I want to add github issue and PR counts. Just a $12 ESP32 and a $30 led matrix.”

Posted by jpluimers on 2021/07/28

[WayBack] Frank A. Krueger on Twitter: “I made a build status IoT thing! Automatically polls @bitrise and is even Alexa controlled (for brightness and to turn off). Now I want to add github issue and PR counts. Just a $12 ESP32 and a $30 led matrix.”

[WayBack]

https://web.archive.org/web/20190822202203/https://video.twimg.com/ext_tw_video/1164251716927156224/pu/vid/1280×720/Pn_rAACnrcUHfXol.mp4

–jeroen

Posted in Development, DVCS - Distributed Version Control, ESP32, GitHub, Hardware Development, Software Development, Source Code Management | Leave a Comment »