From 7d2569485cbf0d74318ee66a0349fb7c0005ebcb Mon Sep 17 00:00:00 2001 From: GitSetup Upstream Date: Tue, 26 Jun 2018 11:22:06 -0400 Subject: [PATCH] GitSetup 2018-06-26 (1ed3dc31) Code extracted from: https://gitlab.kitware.com/utils/gitsetup.git at commit 1ed3dc3129df9ff28a88dac98fc770af2cdcbb2e (setup). --- git-gitlab-push | 12 ++++++++++-- setup-lfs | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 2 deletions(-) create mode 100755 setup-lfs diff --git a/git-gitlab-push b/git-gitlab-push index a7128cecd..ae33ac8a1 100755 --- a/git-gitlab-push +++ b/git-gitlab-push @@ -23,7 +23,8 @@ OPTIONS Show what would be pushed without actually updating the destination -f,--force - Force-push the topic HEAD to rewrite the destination branch + Force-push the topic HEAD to rewrite the destination branch (use twice + to ignore stale remote tracking branches) --no-default Do not push the default branch (e.g. master) @@ -73,7 +74,14 @@ set_upstream=true # Parse the command line options. while test $# != 0; do case "$1" in - -f|--force) force='+'; lease=true ;; + -f|--force) + if test -n "$force"; then + lease=false + else + lease=true + fi + force='+' + ;; --no-topic) no_topic=1; set_upstream=false ;; --dry-run) dry_run=--dry-run ;; --no-default) no_default=1 ;; diff --git a/setup-lfs b/setup-lfs new file mode 100755 index 000000000..1ee6d3b19 --- /dev/null +++ b/setup-lfs @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +#============================================================================= +# Copyright 2017 Kitware, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============================================================================= + +# Run this script to set up the local Git repository to push LFS data to +# remotes. + +die() { + echo 1>&2 "$@" ; exit 1 +} + +# Make sure we are inside the repository. +cd "${BASH_SOURCE%/*}" && + +# Set the LFS filter configuration up. +if git lfs version; then + git config filter.lfs.clean "git-lfs clean -- %f" && + git config filter.lfs.smudge "git-lfs smudge -- %f" && + git config filter.lfs.process "git-lfs filter-process" && + git config filter.lfs.required true && + git lfs fetch && + git lfs checkout && + echo 'LFS is now configured.' +else + die 'Git LFS is not available. Please make it available on the PATH' \ + 'either by installing it through your system provider or installing it' \ + 'from .' +fi