Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Apr 2021 01:37:57 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        Mathieu Arnold <mat@FreeBSD.org>
Cc:        Cy Schubert <Cy.Schubert@cschubert.com>, freebsd-git <freebsd-git@freebsd.org>
Subject:   Re: Ports Repocopies
Message-ID:  <583A7D01-9CAB-4C42-962A-BBDDBDED494E@yahoo.com>
In-Reply-To: <20210401075841.xot2c427twdbxo5a@aching.in.mat.cc>
References:  <202103311842.12VIgiJ3006095@slippy.cwsent.com> <20210401075841.xot2c427twdbxo5a@aching.in.mat.cc>

next in thread | previous in thread | raw e-mail | index | archive | help


On 2021-Apr-1, at 00:58, Mathieu Arnold <mat@FreeBSD.org> wrote:

> On Wed, Mar 31, 2021 at 11:42:44AM -0700, Cy Schubert wrote:
>> Hi,
>>=20
>> Considering git's non-existent copy function, is it safe to say ports=20=

>> repopcopies are now a thing of the past?
>=20
> Note that we stopped doing repocopies when we switched to subversion =
in
> 2012.

Terminology mismatch vs. committers-guide?

https://docs.freebsd.org/en/articles/committers-guide/ has
use of "repo copy" terminology:

QUOTE
22.4. Repository Copies
22.4.1. When do we need a repository copy?
When you want to add a port that is related to any port that is already =
in the tree in a separate directory, you have to do a repository copy. =
Here related means it is a different version or a slightly modified =
version. Examples are print/ghostscript* (different versions) and =
x11-wm/windowmaker* (English-only and internationalized version).

Another example is when a port is moved from one subdirectory to =
another, or when the name of a directory must be changed because the =
authors renamed their software even though it is a descendant of a port =
already in a tree.

22.4.2. What do I need to do?
With Subversion, a repo copy can be done by any committer:

	=E2=80=A2 Doing a repo copy:

	=E2=80=A2 Verify that the target directory does not exist.

	=E2=80=A2 Use svn up to make certain the original files, =
directories, and checkout information is current.

	=E2=80=A2 Use svn move or svn copy to do the repo copy.

	=E2=80=A2 Upgrade the copied port to the new version. Remember =
to add or change the PKGNAMEPREFIX or PKGNAMESUFFIX so there are no =
duplicate ports with the same name. In some rare cases it may be =
necessary to change the PORTNAME instead of adding PKGNAMEPREFIX or =
PKGNAMESUFFIX, but this is only done when it is really needed =E2=80=94 =
for example, using an existing port as the base for a very similar =
program with a different name, or upgrading a port to a new upstream =
version which actually changes the distribution name, like the =
transition from textproc/libxml to textproc/libxml2. In most cases, =
adding or changing PKGNAMEPREFIX or PKGNAMESUFFIX suffices.

	=E2=80=A2 Add the new subdirectory to the SUBDIR listing in the =
parent directory Makefile. You can run make checksubdirs in the parent =
directory to check this.

	=E2=80=A2 If the port changed categories, modify the CATEGORIES =
line of the port=E2=80=99s Makefile accordingly

	=E2=80=A2 Add an entry to ports/MOVED, if you remove the =
original port.

	=E2=80=A2 Commit all changes on one commit.

	=E2=80=A2 When removing a port:

	=E2=80=A2 Perform a thorough check of the ports collection for =
any dependencies on the old port location/name, and update them. Running =
grep on INDEX is not enough because some ports have dependencies enabled =
by compile-time options. A full grep -r of the ports collection is =
recommended.

	=E2=80=A2 Remove the old port and the old SUBDIR entry.

	=E2=80=A2 Add an entry to ports/MOVED.

	=E2=80=A2 After repo moves (=E2=80=9Crename=E2=80=9D operations =
where a port is copied and the old location is removed):

	=E2=80=A2 Follow the same steps that are outlined in the =
previous two entries, to activate the new location of the port and =
remove the old one.
END QUOTE

> If you are talking about doing a svn copy/move to record the ancestry =
of
> a new file, you don't any more, git does not record file moves or
> copies.
>=20
> If you are talking about the resurrection of a port, it would be
> possible to achieve the conservation of history by creating a branch
> before the port was removed, updating the port, and merging it back =
into
> the main branch using a merge strategy keeping the files on the branch
> being merged. But it would probably make reading the logs very ugly, =
and
> add merges everywhere, which we don't want anyway.
>=20


=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?583A7D01-9CAB-4C42-962A-BBDDBDED494E>