[-] jnareb@programming.dev 1 points 1 month ago

I think the biggest issue is dealing with very large code bases, like the code for a mid-large size company. You either go with a monorepo and deal with slowness, Windows-only optimizations and bare minimum partial checkout support.

Or you go with submodules and then you have even bigger problems. Honestly I’m not sure there’s really an answer for this with Git currently.

The partial checkout support in Git is getting improved. Take a look, maybe it now solves your problems.

Support for large repositories via scalar works also for Linux (though not everything is ported; as main body of work on supporting large repositories was created to deal with the size of MS Windows repository, it started with Windows-only support / optimization first).

There are alternatives to submodules, like https://github.com/chronoxor/gil

[-] jnareb@programming.dev 1 points 1 month ago

I think it refers to two things: the title of the book about how Linus create Linux "Just for Fun. The Story of an Accidental Revolutionary", and the fact that Git had to be created to continue effective work on Linux kernel (after BitKeeper fiasco).

From the start of the article:

Linus Torvalds once wrote in a book that he created Linux just for fun, but it ended up sparking a revolution. Git, his second major creation, also an accidental revolution.

[-] jnareb@programming.dev 1 points 2 months ago

undefined symbol: curl_global_sslset, version CURL_GNUTLS_3

This function was added in libcurl 7.56.0.

Maybe your curl is too old?

[-] jnareb@programming.dev 4 points 8 months ago

Note that you can examine branch reflog to find where branch was forked from (1st image), or tell Git to examine it for you with git rebase --fork-point

[-] jnareb@programming.dev 4 points 8 months ago

One thing that is not made clear in the article, is that there is a separate reflog for HEAD, and separate reflogs for individual branches.

HEAD reflog logs changes such as "checkout: moving from next to main". Branch reflog logs changes such as "branch: Created from HEAD" (first entry in branch reflog). Most are common to both (i.e. git logs both to HEAD reflog and the reflog of currently checked out branch).

[-] jnareb@programming.dev 2 points 10 months ago

There was a proposal to add universal signing to Git in 2021, but I think it went nowhere for various reasons (like breaking SHA-1 <-> SHA-256 signing interoperability, if I understand the discussion correctly).

[-] jnareb@programming.dev 1 points 11 months ago

As an in-depth alternative, I recommend "Patterns for Managing Source Code Branches" by Martin Fowler: https://martinfowler.com/articles/branching-patterns.html

[-] jnareb@programming.dev 8 points 11 months ago

The README of this project needs to describe what this project actually do. It would also be nice to have an example of how it can be used, and how long it takes in the case described in an example.

Note that this idea (forcing SHA-1 id to have some specific format) is not something new:

[-] jnareb@programming.dev 3 points 1 year ago

With gitattributes you can configure custom diff driver and custom merge driver for a specific file type.

For example:

  • diff-tools include some tools that work as diff driver, but it is a bit undocumented in regards to what those diff drivers do, and for what files they should be used
  • nbdime tool for better diffing and merging of Jupyter notebooks can work as either diff driver, or as graphical diff interface (as difftool)
  • ...
[-] jnareb@programming.dev 1 points 1 year ago* (last edited 1 year ago)

There is git instaweb command, which runs gitweb for current repo using a specified web server (apache2, lighttpd, mongoose, plackup, python and webrick are supported), and starts a browser. Though gitweb is slightly (or more than slightly) dated, and what is more important, read only.

You can see (modified) gitweb in action on https://repo.or.cz/

[-] jnareb@programming.dev 1 points 1 year ago

Note that git checkout - / git switch - examine reflog to find previous branch. Which means if you renamed the branch, at least current version of Git would be unable to run git switch -.

[-] jnareb@programming.dev 2 points 1 year ago

If I remember it correctly, git checkout also automatically creates the local branch from the remote branch (of the same name), and sets up tracking.

view more: next ›

jnareb

joined 1 year ago