Date: prev next · Thread: first prev next last
2017 Archives by date, by thread · List index


At <https://gerrit.libreoffice.org/gitweb?p=dev-tools.git;a=blob;f=flatpak/build.sh;h=fab02d7f71f38c1f30174a534627db2bcc211ebd;hb=HEAD#l50>,

if [ -e "${my_dir?}"/lo ]; then
 git -C "${my_dir?}"/lo fetch --tags
 git -C "${my_dir?}"/lo checkout "${my_gitbranch?}"
else
 git clone --branch "${my_gitbranch?}" git://gerrit.libreoffice.org/core \
  "${my_dir?}"/lo
fi

I want to get a local checkout of $my_gitbranch (which will either denote a branch like libreoffice-5-4 or a tag like libreoffice-5.4.1.2) of our LO repo. The "else" case is straightforward.

But if I already have the repo checked out from a previous run of the script (with a potentially different value for $my_gitbranch), I don't want to clone again, but re-use the existing repo and just update it accordingly (the "then" branch). The sequence of git commands works fine if $my_gitbranch is a tag.

However, if $my_gitbranch is a branch, and the existing repo happens to already have that branch checked out, then the 'git checkout' will report that I'm behind the remote repo by N commits and should fast-forward.

So adding a 'git pull' after the 'git checkout' would help the case where $my_gitbranch is a branch. But when it is a tag, such a 'git pull' would fail, stating that I'm not on a branch.

Is there a magic git incantation that does what I want?

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.