gitup: process_command: read failure

I am using gitup ports for ports and today it has a problem:

Code:
gitup ports
# Scanning local repository...
# Host: git.freebsd.org
# Port: 443
# Repository Path: /ports.git
# Target Directory: /usr/ports
# Have: e7388e0e984eb7cf47787dfb0f103cc11c918997
# Want: 0527e6e893b978cc44b770424df0cd53f392e799
# Branch: main
gitup: process_command: read failure:

HTTP/1.1 200 OK
Server: nginx/1.28.0
Date: Wed, 06 May 2026 16:14:23 GMT
Content-Type: application/x-git-upload-pack-result
Transfer-Encoding: chunked
Connection: keep-alive
Expires: Fri, 01 Jan 1980 00:00:00 GMT
Pragma: no-cache
Cache-Control: no-cache, max-age=0, must-revalidate
0011shallow-info
0001000dpackfile
2004PACK
: Invalid argument

Thank you
 
This is also happening to me, starting today. For the benefit of anyone else who finds this thread: The OP of the thread in the freebsd-hackers mailing list that nxjoseph@ linked to (above) posted a followup message, saying that they opened bug 295067 on Bugzilla for it.

There's not currently anything there except their initial report, but I imagine it might be useful to follow the Bugzilla thread.
 
Any way to make devel/git behave like net/gitup?
Unfortunately, it's nonsense.

Both have different purposes.

devel/git is basically for developers that need to manipulate local and/or remote git repos and needs to hold repos locally, including info and diffs per single commit. So pulling upstream commits to local repo is just one of the functionalities. Disposing local repos keeping working tree (i.e., /usr/ports excluding /usr/ports/.git that is the actual repo) forces you to dispose the working tree and redo from clone on pulling updates.

On the other hand, net/gitup is for end users that just need to build ports locally but no need to manipulate local repo other than pulling updates.
In this kind of cases, keeping actual repo is just a tooooo huge a mess.

See upstream README about the intended differences.
 
/pkg/usr/local/etc/gitup.conf
Code:
Can fetch with success from GH:

"ports" : {
                "host"       : "github.com",
                "repository" : "/freebsd/freebsd-ports.git",
                "branch"           : "main",
                "target_directory" : "/usr/ports_gitup",
                "ignores"          : [],
        },
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=295067#c5
Code:
It could be something related to nginx at git.freebsd.org.

Please use GH until more clues are found:
 
At least, if I recall correctly, net/gitup haven't been exisited when FreeBSD repo switched from subversion to git.

And gitup shouldn't work if .git directory (repo itself) exists at the top of working tree like /usr/src and /usr/ports (this should be the intended design).

So anyone using git at the time and switched to gitup when it became available WITHOUT READING DOCS SUFFICIENTLY should be bitten by it.
 
This is how I switched from net/gitup to devel/git
If there's a cleaner or more efficient method, I'm all ears.

I only care about the latest commits (the same way gitup works):

git clone --depth 1 https://git.freebsd.org/ports.git /usr/ports

-- depth 1 means download only the newest version of the ports tree and skip all history. This reduces the size of /usr/ports/ folder by 1.72 GB, which is exactly what net/gitup does.

git -C /usr/ports config pull.ff only

This tells Git to only do clean, fast‑forward updates and prevents it from merging or rebasing your local ports tree.

git -C /usr/ports pull

This updates the ports tree. I have it aliased to update-ports.


Comparisons I did before converting:

/usr/ports = net/gitup
/tmp/ports-test = devel/git

Counting the files:

$ find /usr/ports -type f | wc -l
172589

$ find /tmp/ports-test -type f | wc -l
172653

/tmp/ports-test has 64 more files

Disk usage:

$ du -sm /usr/ports
1298 /usr/ports

$ du -sm /tmp/ports-test
1426 /tmp/ports-test

/tmp/ports-test folder is 129 MB larger.

$ du -sh /tmp/ports-test/.git
129M /tmp/ports-test/.git

The .git directory is the folder where Git keeps its internal data - history, metadata, and everything it needs to update your local ports tree.
 
Something useful to check if the pulled ports tree is sane and on what branch it is: git -C /usr/ports status

And another one to see the last commit log: git -C /usr/ports log -1
 
just "git branch".

Unneeded info
Code:
git -C . status
Refresh index: 100% (169420/169420), done.
On branch 2026Q2
Your branch is up to date with 'origin/2026Q2'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)
    shells/packagelist.txt
nothing added to commit but untracked files present (use "git add" to track)
root@myfreebsd:/usr/ports #
 
Does git needs any configuration as gitup? I will use just for ports. I saw that portsnap is still in ports...anyone using it still?
Thank you.

I did switch to GIT and it works without problems.
 
Switching from git.freebsd.org to github.com (as mentioned in the gitup issue) fixes the problem, so I’ll do this until the root cause is found and fixed.
I’m certainly not replacing gitup with git. I like gitup specifically because it’s small, lightweight and low overhead, just like its predecessors cvsup and svnup.
 
Back
Top