[pacman-dev] The great VCS packages overhaul of 2015
Thomas Bächler
thomas at archlinux.org
Tue Mar 13 08:16:12 EDT 2012
Am 13.03.2012 12:33, schrieb Allan McRae:
> The three cases I see as needing covered are:
>
> 1) build from master HEAD
> 2) build from a branch HEAD
> 3) build from a given commit/tag
>
>
> What we need to find is the simplest way of allowing these (and other
> reasonable suggestion that arises...).
My point was that from git's perspective, those are not different cases.
The only annoying thing is the origin/<ref> for branch names which we
need to get around somehow.
I will throw in another suggestion which should solve some of those
problems:
To get the source:
cd $vcsdir
git clone --mirror $url
or
cd $vcsdir/$reponame
git fetch
cd $srcdir
GIT_DIR=$vcsdir/$reponame git archive --format=tar --prefix=$reponame/
$refspec | bsdtar -xf -
To get the version:
GIT_DIR=$vcsdir/$reponame git describe $refspec
Disadvantage:
- The "checkout" itself is not a git tree, so build() cannot use any git
commands (some projects use git commands internally in their Makefiles,
so this might be bad)
Advantage:
- Due to clone --mirror, we have all remote branch names as local branch
names, so we don't need to care whether $refspec is a branch name or
not. As we don't clone again, we don't lose those names.
That disadvantage is big (breaks kernel and syslinux git snapshot
versioning), so I am still not convinced.
My main point is: We must find a way to make sure we (==makepkg) don't
need to care about whether $refspec is a branch, tag or commit.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 900 bytes
Desc: OpenPGP digital signature
URL: <http://mailman.archlinux.org/pipermail/pacman-dev/attachments/20120313/f68ff99a/attachment.asc>
More information about the pacman-dev
mailing list