# How to force download one branch of repo instead of default?



## Maccraft123 (Sep 1, 2018)

Hello there.
I succesfully used graphics/drm-devel-kmod on FreeBSD 5 days ago, then done update of it.
Broken
On Reddit they said 5 days ago was change in that Makefile to download v4.16 branch instead of v4.15.
How to set in that Makefile to download v4.15 instead of v4.16


----------



## ShelLuser (Sep 1, 2018)

You don't.

Just wait for the port maintainer to update the port and when that gets published then you'll be able to use it and update your current setup.

Also noteworthy is that theres no need for any of this because...


```
PORTNAME=       drm-devel-kmod
PORTVERSION=    4.16.g20180824
CATEGORIES=     graphics kld
```
This is from the current Makefile in the port directory.

If yours still lists an older version then I suppose you need to re-run `# portsnap fetch update`.


----------



## Maccraft123 (Sep 1, 2018)

I want to download version from 6-days-ago, because recent doesn't work


----------



## ShelLuser (Sep 1, 2018)

I don't think you can. Not that easily anyway, basically only one version of the ports tree gets maintained. You could try using Subversion to check out an older release (meaning an older release of the entire Ports collection) but that's a lot of hassle.

This is why you usually make backups before you're upgrading ports. ports-mgmt/portmaster can be an ideal solution for that (by editing its config file):


```
# Always save the backup packages of the old port (-b)
BACKUP=bopt
```


----------



## Maccraft123 (Sep 1, 2018)

There is a GitHub repo for this port with several versions in own branches


----------



## ShelLuser (Sep 2, 2018)

Maccraft123 said:


> There is a GitHub repo for this port with several versions in own branches


I doubt that.

There's a huge difference between the FreeBSD port itself and the software it's providing. The port basically consists of the files you see in the port directory; those give you information about the software itself and the Makefile tells the system where to build the software. Basically where to get the source, what optional patches to apply, etc.

But that doesn't necessarily correspond with whatever the project is doing in their own repository.

Basically: just because you might be able to grab an older version of the software from their repository doesn't automatically imply that you'll also be able to install that as a port. Sure, you might be able to grab it and build it outside the port system but that obviously doesn't automatically turn it into a port or a package.


----------



## Datapanic (Sep 2, 2018)

You could use subversion to download a ports tree from a certain date and then build the port from the saved ports tree.  Something like:


```
svn co -r'{2018-08-25}' https://svn.freebsd.org/ports/head /usr/oldports
```

Not responsible for what happens when you try to build it, but that's how to get the ports tree from a certain date in the past.


----------

