作者 zhangxiaying

init

  1 +a5bf1a6ce31cbb3fbe07b9700e1fa1c0651de4bd branch 'master' of http://114.215.101.231:8099/zhangxiaying/hunlian
  2 +a5bf1a6ce31cbb3fbe07b9700e1fa1c0651de4bd not-for-merge branch 'Dev' of http://114.215.101.231:8099/zhangxiaying/hunlian
  3 +a5bf1a6ce31cbb3fbe07b9700e1fa1c0651de4bd not-for-merge branch 'dev' of http://114.215.101.231:8099/zhangxiaying/hunlian
  1 +ref: refs/heads/master
  1 +a5bf1a6ce31cbb3fbe07b9700e1fa1c0651de4bd
  1 +[core]
  2 + repositoryformatversion = 0
  3 + filemode = false
  4 + bare = false
  5 + logallrefupdates = true
  6 + symlinks = false
  7 + ignorecase = true
  8 +[remote "origin"]
  9 + url = http://114.215.101.231:8099/zhangxiaying/hunlian.git
  10 + fetch = +refs/heads/*:refs/remotes/origin/*
  11 +[branch "master"]
  12 + remote = origin
  13 + merge = refs/heads/master
  1 +Unnamed repository; edit this file 'description' to name the repository.
  1 +#!/bin/sh
  2 +#
  3 +# An example hook script to check the commit log message taken by
  4 +# applypatch from an e-mail message.
  5 +#
  6 +# The hook should exit with non-zero status after issuing an
  7 +# appropriate message if it wants to stop the commit. The hook is
  8 +# allowed to edit the commit message file.
  9 +#
  10 +# To enable this hook, rename this file to "applypatch-msg".
  11 +
  12 +. git-sh-setup
  13 +commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
  14 +test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
  15 +:
  1 +#!/bin/sh
  2 +#
  3 +# An example hook script to check the commit log message.
  4 +# Called by "git commit" with one argument, the name of the file
  5 +# that has the commit message. The hook should exit with non-zero
  6 +# status after issuing an appropriate message if it wants to stop the
  7 +# commit. The hook is allowed to edit the commit message file.
  8 +#
  9 +# To enable this hook, rename this file to "commit-msg".
  10 +
  11 +# Uncomment the below to add a Signed-off-by line to the message.
  12 +# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
  13 +# hook is more suited to it.
  14 +#
  15 +# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
  16 +# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
  17 +
  18 +# This example catches duplicate Signed-off-by lines.
  19 +
  20 +test "" = "$(grep '^Signed-off-by: ' "$1" |
  21 + sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
  22 + echo >&2 Duplicate Signed-off-by lines.
  23 + exit 1
  24 +}
  1 +#!/usr/bin/perl
  2 +
  3 +use strict;
  4 +use warnings;
  5 +use IPC::Open2;
  6 +
  7 +# An example hook script to integrate Watchman
  8 +# (https://facebook.github.io/watchman/) with git to speed up detecting
  9 +# new and modified files.
  10 +#
  11 +# The hook is passed a version (currently 1) and a time in nanoseconds
  12 +# formatted as a string and outputs to stdout all files that have been
  13 +# modified since the given time. Paths must be relative to the root of
  14 +# the working tree and separated by a single NUL.
  15 +#
  16 +# To enable this hook, rename this file to "query-watchman" and set
  17 +# 'git config core.fsmonitor .git/hooks/query-watchman'
  18 +#
  19 +my ($version, $time) = @ARGV;
  20 +
  21 +# Check the hook interface version
  22 +
  23 +if ($version == 1) {
  24 + # convert nanoseconds to seconds
  25 + $time = int $time / 1000000000;
  26 +} else {
  27 + die "Unsupported query-fsmonitor hook version '$version'.\n" .
  28 + "Falling back to scanning...\n";
  29 +}
  30 +
  31 +my $git_work_tree;
  32 +if ($^O =~ 'msys' || $^O =~ 'cygwin') {
  33 + $git_work_tree = Win32::GetCwd();
  34 + $git_work_tree =~ tr/\\/\//;
  35 +} else {
  36 + require Cwd;
  37 + $git_work_tree = Cwd::cwd();
  38 +}
  39 +
  40 +my $retry = 1;
  41 +
  42 +launch_watchman();
  43 +
  44 +sub launch_watchman {
  45 +
  46 + my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
  47 + or die "open2() failed: $!\n" .
  48 + "Falling back to scanning...\n";
  49 +
  50 + # In the query expression below we're asking for names of files that
  51 + # changed since $time but were not transient (ie created after
  52 + # $time but no longer exist).
  53 + #
  54 + # To accomplish this, we're using the "since" generator to use the
  55 + # recency index to select candidate nodes and "fields" to limit the
  56 + # output to file names only. Then we're using the "expression" term to
  57 + # further constrain the results.
  58 + #
  59 + # The category of transient files that we want to ignore will have a
  60 + # creation clock (cclock) newer than $time_t value and will also not
  61 + # currently exist.
  62 +
  63 + my $query = <<" END";
  64 + ["query", "$git_work_tree", {
  65 + "since": $time,
  66 + "fields": ["name"],
  67 + "expression": ["not", ["allof", ["since", $time, "cclock"], ["not", "exists"]]]
  68 + }]
  69 + END
  70 +
  71 + print CHLD_IN $query;
  72 + close CHLD_IN;
  73 + my $response = do {local $/; <CHLD_OUT>};
  74 +
  75 + die "Watchman: command returned no output.\n" .
  76 + "Falling back to scanning...\n" if $response eq "";
  77 + die "Watchman: command returned invalid output: $response\n" .
  78 + "Falling back to scanning...\n" unless $response =~ /^\{/;
  79 +
  80 + my $json_pkg;
  81 + eval {
  82 + require JSON::XS;
  83 + $json_pkg = "JSON::XS";
  84 + 1;
  85 + } or do {
  86 + require JSON::PP;
  87 + $json_pkg = "JSON::PP";
  88 + };
  89 +
  90 + my $o = $json_pkg->new->utf8->decode($response);
  91 +
  92 + if ($retry > 0 and $o->{error} and $o->{error} =~ m/unable to resolve root .* directory (.*) is not watched/) {
  93 + print STDERR "Adding '$git_work_tree' to watchman's watch list.\n";
  94 + $retry--;
  95 + qx/watchman watch "$git_work_tree"/;
  96 + die "Failed to make watchman watch '$git_work_tree'.\n" .
  97 + "Falling back to scanning...\n" if $? != 0;
  98 +
  99 + # Watchman will always return all files on the first query so
  100 + # return the fast "everything is dirty" flag to git and do the
  101 + # Watchman query just to get it over with now so we won't pay
  102 + # the cost in git to look up each individual file.
  103 + print "/\0";
  104 + eval { launch_watchman() };
  105 + exit 0;
  106 + }
  107 +
  108 + die "Watchman: $o->{error}.\n" .
  109 + "Falling back to scanning...\n" if $o->{error};
  110 +
  111 + binmode STDOUT, ":utf8";
  112 + local $, = "\0";
  113 + print @{$o->{files}};
  114 +}
  1 +#!/bin/sh
  2 +#
  3 +# An example hook script to prepare a packed repository for use over
  4 +# dumb transports.
  5 +#
  6 +# To enable this hook, rename this file to "post-update".
  7 +
  8 +exec git update-server-info
  1 +#!/bin/sh
  2 +#
  3 +# An example hook script to verify what is about to be committed
  4 +# by applypatch from an e-mail message.
  5 +#
  6 +# The hook should exit with non-zero status after issuing an
  7 +# appropriate message if it wants to stop the commit.
  8 +#
  9 +# To enable this hook, rename this file to "pre-applypatch".
  10 +
  11 +. git-sh-setup
  12 +precommit="$(git rev-parse --git-path hooks/pre-commit)"
  13 +test -x "$precommit" && exec "$precommit" ${1+"$@"}
  14 +:
  1 +#!/bin/sh
  2 +#
  3 +# An example hook script to verify what is about to be committed.
  4 +# Called by "git commit" with no arguments. The hook should
  5 +# exit with non-zero status after issuing an appropriate message if
  6 +# it wants to stop the commit.
  7 +#
  8 +# To enable this hook, rename this file to "pre-commit".
  9 +
  10 +if git rev-parse --verify HEAD >/dev/null 2>&1
  11 +then
  12 + against=HEAD
  13 +else
  14 + # Initial commit: diff against an empty tree object
  15 + against=$(git hash-object -t tree /dev/null)
  16 +fi
  17 +
  18 +# If you want to allow non-ASCII filenames set this variable to true.
  19 +allownonascii=$(git config --bool hooks.allownonascii)
  20 +
  21 +# Redirect output to stderr.
  22 +exec 1>&2
  23 +
  24 +# Cross platform projects tend to avoid non-ASCII filenames; prevent
  25 +# them from being added to the repository. We exploit the fact that the
  26 +# printable range starts at the space character and ends with tilde.
  27 +if [ "$allownonascii" != "true" ] &&
  28 + # Note that the use of brackets around a tr range is ok here, (it's
  29 + # even required, for portability to Solaris 10's /usr/bin/tr), since
  30 + # the square bracket bytes happen to fall in the designated range.
  31 + test $(git diff --cached --name-only --diff-filter=A -z $against |
  32 + LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
  33 +then
  34 + cat <<\EOF
  35 +Error: Attempt to add a non-ASCII file name.
  36 +
  37 +This can cause problems if you want to work with people on other platforms.
  38 +
  39 +To be portable it is advisable to rename the file.
  40 +
  41 +If you know what you are doing you can disable this check using:
  42 +
  43 + git config hooks.allownonascii true
  44 +EOF
  45 + exit 1
  46 +fi
  47 +
  48 +# If there are whitespace errors, print the offending file names and fail.
  49 +exec git diff-index --check --cached $against --
  1 +#!/bin/sh
  2 +
  3 +# An example hook script to verify what is about to be pushed. Called by "git
  4 +# push" after it has checked the remote status, but before anything has been
  5 +# pushed. If this script exits with a non-zero status nothing will be pushed.
  6 +#
  7 +# This hook is called with the following parameters:
  8 +#
  9 +# $1 -- Name of the remote to which the push is being done
  10 +# $2 -- URL to which the push is being done
  11 +#
  12 +# If pushing without using a named remote those arguments will be equal.
  13 +#
  14 +# Information about the commits which are being pushed is supplied as lines to
  15 +# the standard input in the form:
  16 +#
  17 +# <local ref> <local sha1> <remote ref> <remote sha1>
  18 +#
  19 +# This sample shows how to prevent push of commits where the log message starts
  20 +# with "WIP" (work in progress).
  21 +
  22 +remote="$1"
  23 +url="$2"
  24 +
  25 +z40=0000000000000000000000000000000000000000
  26 +
  27 +while read local_ref local_sha remote_ref remote_sha
  28 +do
  29 + if [ "$local_sha" = $z40 ]
  30 + then
  31 + # Handle delete
  32 + :
  33 + else
  34 + if [ "$remote_sha" = $z40 ]
  35 + then
  36 + # New branch, examine all commits
  37 + range="$local_sha"
  38 + else
  39 + # Update to existing branch, examine new commits
  40 + range="$remote_sha..$local_sha"
  41 + fi
  42 +
  43 + # Check for WIP commit
  44 + commit=`git rev-list -n 1 --grep '^WIP' "$range"`
  45 + if [ -n "$commit" ]
  46 + then
  47 + echo >&2 "Found WIP commit in $local_ref, not pushing"
  48 + exit 1
  49 + fi
  50 + fi
  51 +done
  52 +
  53 +exit 0
  1 +#!/bin/sh
  2 +#
  3 +# Copyright (c) 2006, 2008 Junio C Hamano
  4 +#
  5 +# The "pre-rebase" hook is run just before "git rebase" starts doing
  6 +# its job, and can prevent the command from running by exiting with
  7 +# non-zero status.
  8 +#
  9 +# The hook is called with the following parameters:
  10 +#
  11 +# $1 -- the upstream the series was forked from.
  12 +# $2 -- the branch being rebased (or empty when rebasing the current branch).
  13 +#
  14 +# This sample shows how to prevent topic branches that are already
  15 +# merged to 'next' branch from getting rebased, because allowing it
  16 +# would result in rebasing already published history.
  17 +
  18 +publish=next
  19 +basebranch="$1"
  20 +if test "$#" = 2
  21 +then
  22 + topic="refs/heads/$2"
  23 +else
  24 + topic=`git symbolic-ref HEAD` ||
  25 + exit 0 ;# we do not interrupt rebasing detached HEAD
  26 +fi
  27 +
  28 +case "$topic" in
  29 +refs/heads/??/*)
  30 + ;;
  31 +*)
  32 + exit 0 ;# we do not interrupt others.
  33 + ;;
  34 +esac
  35 +
  36 +# Now we are dealing with a topic branch being rebased
  37 +# on top of master. Is it OK to rebase it?
  38 +
  39 +# Does the topic really exist?
  40 +git show-ref -q "$topic" || {
  41 + echo >&2 "No such branch $topic"
  42 + exit 1
  43 +}
  44 +
  45 +# Is topic fully merged to master?
  46 +not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
  47 +if test -z "$not_in_master"
  48 +then
  49 + echo >&2 "$topic is fully merged to master; better remove it."
  50 + exit 1 ;# we could allow it, but there is no point.
  51 +fi
  52 +
  53 +# Is topic ever merged to next? If so you should not be rebasing it.
  54 +only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
  55 +only_next_2=`git rev-list ^master ${publish} | sort`
  56 +if test "$only_next_1" = "$only_next_2"
  57 +then
  58 + not_in_topic=`git rev-list "^$topic" master`
  59 + if test -z "$not_in_topic"
  60 + then
  61 + echo >&2 "$topic is already up to date with master"
  62 + exit 1 ;# we could allow it, but there is no point.
  63 + else
  64 + exit 0
  65 + fi
  66 +else
  67 + not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
  68 + /usr/bin/perl -e '
  69 + my $topic = $ARGV[0];
  70 + my $msg = "* $topic has commits already merged to public branch:\n";
  71 + my (%not_in_next) = map {
  72 + /^([0-9a-f]+) /;
  73 + ($1 => 1);
  74 + } split(/\n/, $ARGV[1]);
  75 + for my $elem (map {
  76 + /^([0-9a-f]+) (.*)$/;
  77 + [$1 => $2];
  78 + } split(/\n/, $ARGV[2])) {
  79 + if (!exists $not_in_next{$elem->[0]}) {
  80 + if ($msg) {
  81 + print STDERR $msg;
  82 + undef $msg;
  83 + }
  84 + print STDERR " $elem->[1]\n";
  85 + }
  86 + }
  87 + ' "$topic" "$not_in_next" "$not_in_master"
  88 + exit 1
  89 +fi
  90 +
  91 +<<\DOC_END
  92 +
  93 +This sample hook safeguards topic branches that have been
  94 +published from being rewound.
  95 +
  96 +The workflow assumed here is:
  97 +
  98 + * Once a topic branch forks from "master", "master" is never
  99 + merged into it again (either directly or indirectly).
  100 +
  101 + * Once a topic branch is fully cooked and merged into "master",
  102 + it is deleted. If you need to build on top of it to correct
  103 + earlier mistakes, a new topic branch is created by forking at
  104 + the tip of the "master". This is not strictly necessary, but
  105 + it makes it easier to keep your history simple.
  106 +
  107 + * Whenever you need to test or publish your changes to topic
  108 + branches, merge them into "next" branch.
  109 +
  110 +The script, being an example, hardcodes the publish branch name
  111 +to be "next", but it is trivial to make it configurable via
  112 +$GIT_DIR/config mechanism.
  113 +
  114 +With this workflow, you would want to know:
  115 +
  116 +(1) ... if a topic branch has ever been merged to "next". Young
  117 + topic branches can have stupid mistakes you would rather
  118 + clean up before publishing, and things that have not been
  119 + merged into other branches can be easily rebased without
  120 + affecting other people. But once it is published, you would
  121 + not want to rewind it.
  122 +
  123 +(2) ... if a topic branch has been fully merged to "master".
  124 + Then you can delete it. More importantly, you should not
  125 + build on top of it -- other people may already want to
  126 + change things related to the topic as patches against your
  127 + "master", so if you need further changes, it is better to
  128 + fork the topic (perhaps with the same name) afresh from the
  129 + tip of "master".
  130 +
  131 +Let's look at this example:
  132 +
  133 + o---o---o---o---o---o---o---o---o---o "next"
  134 + / / / /
  135 + / a---a---b A / /
  136 + / / / /
  137 + / / c---c---c---c B /
  138 + / / / \ /
  139 + / / / b---b C \ /
  140 + / / / / \ /
  141 + ---o---o---o---o---o---o---o---o---o---o---o "master"
  142 +
  143 +
  144 +A, B and C are topic branches.
  145 +
  146 + * A has one fix since it was merged up to "next".
  147 +
  148 + * B has finished. It has been fully merged up to "master" and "next",
  149 + and is ready to be deleted.
  150 +
  151 + * C has not merged to "next" at all.
  152 +
  153 +We would want to allow C to be rebased, refuse A, and encourage
  154 +B to be deleted.
  155 +
  156 +To compute (1):
  157 +
  158 + git rev-list ^master ^topic next
  159 + git rev-list ^master next
  160 +
  161 + if these match, topic has not merged in next at all.
  162 +
  163 +To compute (2):
  164 +
  165 + git rev-list master..topic
  166 +
  167 + if this is empty, it is fully merged to "master".
  168 +
  169 +DOC_END
  1 +#!/bin/sh
  2 +#
  3 +# An example hook script to make use of push options.
  4 +# The example simply echoes all push options that start with 'echoback='
  5 +# and rejects all pushes when the "reject" push option is used.
  6 +#
  7 +# To enable this hook, rename this file to "pre-receive".
  8 +
  9 +if test -n "$GIT_PUSH_OPTION_COUNT"
  10 +then
  11 + i=0
  12 + while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
  13 + do
  14 + eval "value=\$GIT_PUSH_OPTION_$i"
  15 + case "$value" in
  16 + echoback=*)
  17 + echo "echo from the pre-receive-hook: ${value#*=}" >&2
  18 + ;;
  19 + reject)
  20 + exit 1
  21 + esac
  22 + i=$((i + 1))
  23 + done
  24 +fi
  1 +#!/bin/sh
  2 +#
  3 +# An example hook script to prepare the commit log message.
  4 +# Called by "git commit" with the name of the file that has the
  5 +# commit message, followed by the description of the commit
  6 +# message's source. The hook's purpose is to edit the commit
  7 +# message file. If the hook fails with a non-zero status,
  8 +# the commit is aborted.
  9 +#
  10 +# To enable this hook, rename this file to "prepare-commit-msg".
  11 +
  12 +# This hook includes three examples. The first one removes the
  13 +# "# Please enter the commit message..." help message.
  14 +#
  15 +# The second includes the output of "git diff --name-status -r"
  16 +# into the message, just before the "git status" output. It is
  17 +# commented because it doesn't cope with --amend or with squashed
  18 +# commits.
  19 +#
  20 +# The third example adds a Signed-off-by line to the message, that can
  21 +# still be edited. This is rarely a good idea.
  22 +
  23 +COMMIT_MSG_FILE=$1
  24 +COMMIT_SOURCE=$2
  25 +SHA1=$3
  26 +
  27 +/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
  28 +
  29 +# case "$COMMIT_SOURCE,$SHA1" in
  30 +# ,|template,)
  31 +# /usr/bin/perl -i.bak -pe '
  32 +# print "\n" . `git diff --cached --name-status -r`
  33 +# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
  34 +# *) ;;
  35 +# esac
  36 +
  37 +# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
  38 +# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
  39 +# if test -z "$COMMIT_SOURCE"
  40 +# then
  41 +# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
  42 +# fi
  1 +#!/bin/sh
  2 +#
  3 +# An example hook script to block unannotated tags from entering.
  4 +# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
  5 +#
  6 +# To enable this hook, rename this file to "update".
  7 +#
  8 +# Config
  9 +# ------
  10 +# hooks.allowunannotated
  11 +# This boolean sets whether unannotated tags will be allowed into the
  12 +# repository. By default they won't be.
  13 +# hooks.allowdeletetag
  14 +# This boolean sets whether deleting tags will be allowed in the
  15 +# repository. By default they won't be.
  16 +# hooks.allowmodifytag
  17 +# This boolean sets whether a tag may be modified after creation. By default
  18 +# it won't be.
  19 +# hooks.allowdeletebranch
  20 +# This boolean sets whether deleting branches will be allowed in the
  21 +# repository. By default they won't be.
  22 +# hooks.denycreatebranch
  23 +# This boolean sets whether remotely creating branches will be denied
  24 +# in the repository. By default this is allowed.
  25 +#
  26 +
  27 +# --- Command line
  28 +refname="$1"
  29 +oldrev="$2"
  30 +newrev="$3"
  31 +
  32 +# --- Safety check
  33 +if [ -z "$GIT_DIR" ]; then
  34 + echo "Don't run this script from the command line." >&2
  35 + echo " (if you want, you could supply GIT_DIR then run" >&2
  36 + echo " $0 <ref> <oldrev> <newrev>)" >&2
  37 + exit 1
  38 +fi
  39 +
  40 +if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
  41 + echo "usage: $0 <ref> <oldrev> <newrev>" >&2
  42 + exit 1
  43 +fi
  44 +
  45 +# --- Config
  46 +allowunannotated=$(git config --bool hooks.allowunannotated)
  47 +allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
  48 +denycreatebranch=$(git config --bool hooks.denycreatebranch)
  49 +allowdeletetag=$(git config --bool hooks.allowdeletetag)
  50 +allowmodifytag=$(git config --bool hooks.allowmodifytag)
  51 +
  52 +# check for no description
  53 +projectdesc=$(sed -e '1q' "$GIT_DIR/description")
  54 +case "$projectdesc" in
  55 +"Unnamed repository"* | "")
  56 + echo "*** Project description file hasn't been set" >&2
  57 + exit 1
  58 + ;;
  59 +esac
  60 +
  61 +# --- Check types
  62 +# if $newrev is 0000...0000, it's a commit to delete a ref.
  63 +zero="0000000000000000000000000000000000000000"
  64 +if [ "$newrev" = "$zero" ]; then
  65 + newrev_type=delete
  66 +else
  67 + newrev_type=$(git cat-file -t $newrev)
  68 +fi
  69 +
  70 +case "$refname","$newrev_type" in
  71 + refs/tags/*,commit)
  72 + # un-annotated tag
  73 + short_refname=${refname##refs/tags/}
  74 + if [ "$allowunannotated" != "true" ]; then
  75 + echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
  76 + echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
  77 + exit 1
  78 + fi
  79 + ;;
  80 + refs/tags/*,delete)
  81 + # delete tag
  82 + if [ "$allowdeletetag" != "true" ]; then
  83 + echo "*** Deleting a tag is not allowed in this repository" >&2
  84 + exit 1
  85 + fi
  86 + ;;
  87 + refs/tags/*,tag)
  88 + # annotated tag
  89 + if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
  90 + then
  91 + echo "*** Tag '$refname' already exists." >&2
  92 + echo "*** Modifying a tag is not allowed in this repository." >&2
  93 + exit 1
  94 + fi
  95 + ;;
  96 + refs/heads/*,commit)
  97 + # branch
  98 + if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
  99 + echo "*** Creating a branch is not allowed in this repository" >&2
  100 + exit 1
  101 + fi
  102 + ;;
  103 + refs/heads/*,delete)
  104 + # delete branch
  105 + if [ "$allowdeletebranch" != "true" ]; then
  106 + echo "*** Deleting a branch is not allowed in this repository" >&2
  107 + exit 1
  108 + fi
  109 + ;;
  110 + refs/remotes/*,commit)
  111 + # tracking branch
  112 + ;;
  113 + refs/remotes/*,delete)
  114 + # delete tracking branch
  115 + if [ "$allowdeletebranch" != "true" ]; then
  116 + echo "*** Deleting a tracking branch is not allowed in this repository" >&2
  117 + exit 1
  118 + fi
  119 + ;;
  120 + *)
  121 + # Anything else (is there anything else?)
  122 + echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
  123 + exit 1
  124 + ;;
  125 +esac
  126 +
  127 +# --- Finished
  128 +exit 0
不能预览此文件类型
  1 +# git ls-files --others --exclude-from=.git/info/exclude
  2 +# Lines that start with '#' are comments.
  3 +# For a project mostly in C, the following would be a good set of
  4 +# exclude patterns (uncomment them if you want to use them):
  5 +# *.[oa]
  6 +# *~
  1 +0000000000000000000000000000000000000000 a5bf1a6ce31cbb3fbe07b9700e1fa1c0651de4bd 张侠英 <zxy@bronet.cn> 1589768019 +0800 initial pull
  1 +0000000000000000000000000000000000000000 a5bf1a6ce31cbb3fbe07b9700e1fa1c0651de4bd 张侠英 <zxy@bronet.cn> 1589768019 +0800 initial pull
  1 +0000000000000000000000000000000000000000 a5bf1a6ce31cbb3fbe07b9700e1fa1c0651de4bd 张侠英 <zxy@bronet.cn> 1589847822 +0800 fetch: storing head
  1 +0000000000000000000000000000000000000000 a5bf1a6ce31cbb3fbe07b9700e1fa1c0651de4bd 张侠英 <zxy@bronet.cn> 1589768019 +0800 pull: storing head
  1 +a5bf1a6ce31cbb3fbe07b9700e1fa1c0651de4bd
  1 +a5bf1a6ce31cbb3fbe07b9700e1fa1c0651de4bd
  1 +a5bf1a6ce31cbb3fbe07b9700e1fa1c0651de4bd