# Fetch pack error when getting port tree



## ssbear (Apr 20, 2021)

Hi all.

I see that Freebsd has moved from svn to git. Ok. 
On my local machine, when I try:
`git clone --branch main https://git.FreeBSD.org/ports.git /usr/ports`
It's ok.

However, on a ec2 server, this command always generates this error, closed to 60%:

```
Cloning into '/usr/ports'...
remote: Enumerating objects: 936, done.
remote: Counting objects: 100% (936/936), done.
remote: Compressing objects: 100% (120/120), done.
fatal: fetch-pack: invalid index-pack output02.95 MiB | 6.89 MiB/s
```

I guess it's a swap error, regarding my log messages. 

```
pid 48081 (git), jid 0, uid 0, was killed: out of swap space
```

Unfortunally, I can't add a swap space to this machine (when the process fails, my memory is full).

```
last pid: 48142;  load averages:  0.92,  0.84,  0.69             up 97+02:14:18  16:18:56
49 processes:  1 running, 48 sleeping
CPU:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 1572K Active, 636K Inact, 64K Laundry, 171M Wired, 15M Buf, 635M Free
```

I tried several tricks, like:

```
git config --global pack.packSizeLimit 50m
git config --global pack.windowMemory 50m
git config --global core.compression 9
```
But it does not fix the issue.

Do you have any idea to bypass this issue, and update my ports tree with git and my memory limit?

Thanks a lot! If you need any details, feel free to ask.

Regards,


----------



## SirDice (Apr 20, 2021)

ssbear said:


> and update my ports tree with git and my memory limit?


You can use net/gitup instead. But I believe that also uses quite a bit of memory (author is aware and is trying to improve it). There's still portsnap(8) you can use. That's probably the least memory hungry and the easiest to use.

But I would suggest not getting a ports tree at all on these "small" machines and simply use packages. No fuss, just pkg-install(8) and be done. If you need specific options or versions, set up your own repository on a big box and have your "small" machines get their packages from your repository.


----------



## ssbear (Apr 21, 2021)

SirDice said:


> You can use net/gitup instead. But I believe that also uses quite a bit of memory (author is aware and is trying to improve it). There's still portsnap(8) you can use. That's probably the least memory hungry and the easiest to use.


Thanks a lot. Indeed, with net/gitup, it's ok for me! But I guess it's a temp option, regarding your next message.



SirDice said:


> But I would suggest not getting a ports tree at all on these "small" machines and simply use packages. No fuss, just pkg-install(8) and be done. If you need specific options or versions, set up your own repository on a big box and have your "small" machines get their packages from your repository.


Yeah, it's been a long years I'm used to update my ports tree with svnlite(1). But regarding the memory required just for *getting* sources with the new process, I think I'm gonna look the own repository option in a short term (it's just for specific options for nginx and one other port...).

Thanks!


----------

