On Fri, Jan 21, 2022 at 07:24:34PM +0100, Marc Espie wrote: > On Fri, Jan 21, 2022 at 07:06:22PM +0100, Stefan Sperling wrote: > > I never understood why new ports have to submitted as a tarball. > > Why not accept new ports as a diff which only creates new files? > > It is trivial to create such a diff. > > Give me the magical recipie that does NOT create directories in the actual > CVS repository/is usable without write access to the OpenBSD CVS repo or > a copy ! > > They DON'T create new files, they create NEW DIRECTORIES. > > Unless I'm missing something, CVS makes it NEXT TO IMPOSSIBLE TO DO > without a local repository!
cvsdo can do it by faking new directories entries in CVS/Entries files. This does not require adding directories to the repository (see below). I am not suggesting this is a great solution, but it can be done. $ ls /tmp/repo/ CVSROOT/ test/ $ cvs -d /tmp/repo co -P test cvs checkout: Updating test U test/alpha $ cd test $ mkdir foo $ cvsdo add foo $ echo 'hello world' > foo/new $ cvsdo add foo/new $ cvs -R diff -uNp foo cvs diff: Diffing foo Index: foo/new =================================================================== RCS file: foo/new diff -N foo/new --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ foo/new 21 Jan 2022 18:38:57 -0000 @@ -0,0 +1 @@ +hello world $ mkdir foo/patches $ echo new patch > foo/patches/patch1 $ cvsdo add foo/patches/patch1 $ cvs -R diff -uNp foo foo/patches cvs diff: Diffing foo Index: foo/new =================================================================== RCS file: foo/new diff -N foo/new --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ foo/new 21 Jan 2022 18:38:57 -0000 @@ -0,0 +1 @@ +hello world cvs diff: Diffing foo/patches Index: foo/patches/patch1 =================================================================== RCS file: foo/patches/patch1 diff -N foo/patches/patch1 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ foo/patches/patch1 21 Jan 2022 18:41:50 -0000 @@ -0,0 +1 @@ +new patch $ ls /tmp/repo/test/ alpha,v $