From b749eb787ded05b71e8df65e146127f82851f073 Mon Sep 17 00:00:00 2001 From: LeeNux Date: Wed, 21 Sep 2022 21:35:13 +0800 Subject: [PATCH] reset --- FETCH_HEAD | 1 - HEAD | 1 - config | 9 - description | 1 - git.ico | Bin 54510 -> 0 bytes hooks/applypatch-msg.sample | 15 -- hooks/commit-msg.sample | 24 --- hooks/fsmonitor-watchman.sample | 173 ------------------ hooks/post-update.sample | 8 - hooks/pre-applypatch.sample | 14 -- hooks/pre-commit.sample | 49 ----- hooks/pre-merge-commit.sample | 13 -- hooks/pre-push.sample | 53 ------ hooks/pre-rebase.sample | 169 ----------------- hooks/pre-receive.sample | 24 --- hooks/prepare-commit-msg.sample | 42 ----- hooks/push-to-checkout.sample | 78 -------- hooks/update.sample | 128 ------------- info/exclude | 6 - .../73/adf8535710c3557b88f5636d458e712c836aa9 | Bin 88 -> 0 bytes .../8c/2e7c3189b22ac435ef1a8ecab3f162a9961527 | Bin 714 -> 0 bytes .../ae/e17d58eb3c6441001eaf42956edcea9d9a5694 | 3 - .../fd/127a8c35f2d8886c0686cfcb369aec3312eb14 | Bin 30 -> 0 bytes tgitchangelist | 0 24 files changed, 811 deletions(-) delete mode 100644 FETCH_HEAD delete mode 100644 HEAD delete mode 100644 config delete mode 100644 description delete mode 100644 git.ico delete mode 100644 hooks/applypatch-msg.sample delete mode 100644 hooks/commit-msg.sample delete mode 100644 hooks/fsmonitor-watchman.sample delete mode 100644 hooks/post-update.sample delete mode 100644 hooks/pre-applypatch.sample delete mode 100644 hooks/pre-commit.sample delete mode 100644 hooks/pre-merge-commit.sample delete mode 100644 hooks/pre-push.sample delete mode 100644 hooks/pre-rebase.sample delete mode 100644 hooks/pre-receive.sample delete mode 100644 hooks/prepare-commit-msg.sample delete mode 100644 hooks/push-to-checkout.sample delete mode 100644 hooks/update.sample delete mode 100644 info/exclude delete mode 100644 objects/73/adf8535710c3557b88f5636d458e712c836aa9 delete mode 100644 objects/8c/2e7c3189b22ac435ef1a8ecab3f162a9961527 delete mode 100644 objects/ae/e17d58eb3c6441001eaf42956edcea9d9a5694 delete mode 100644 objects/fd/127a8c35f2d8886c0686cfcb369aec3312eb14 create mode 100644 tgitchangelist diff --git a/FETCH_HEAD b/FETCH_HEAD deleted file mode 100644 index 61d729a..0000000 --- a/FETCH_HEAD +++ /dev/null @@ -1 +0,0 @@ -aee17d58eb3c6441001eaf42956edcea9d9a5694 not-for-merge branch 'master' of https://gitlink.org.cn/mevulfmp3/TianXingJian diff --git a/HEAD b/HEAD deleted file mode 100644 index cb089cd..0000000 --- a/HEAD +++ /dev/null @@ -1 +0,0 @@ -ref: refs/heads/master diff --git a/config b/config deleted file mode 100644 index 3192b59..0000000 --- a/config +++ /dev/null @@ -1,9 +0,0 @@ -[core] - bare = true - repositoryformatversion = 0 - filemode = false - symlinks = false - ignorecase = true -[remote "origin"] - url = https://gitlink.org.cn/mevulfmp3/TianXingJian.git - fetch = +refs/heads/*:refs/remotes/origin/* diff --git a/description b/description deleted file mode 100644 index 498b267..0000000 --- a/description +++ /dev/null @@ -1 +0,0 @@ -Unnamed repository; edit this file 'description' to name the repository. diff --git a/git.ico b/git.ico deleted file mode 100644 index 5180341040ef057a570a019f3e7098a295126abf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54510 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\).*$/Signed-off-by: \1/p') -# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" - -# This example catches duplicate Signed-off-by lines. - -test "" = "$(grep '^Signed-off-by: ' "$1" | - sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { - echo >&2 Duplicate Signed-off-by lines. - exit 1 -} diff --git a/hooks/fsmonitor-watchman.sample b/hooks/fsmonitor-watchman.sample deleted file mode 100644 index 14ed0aa..0000000 --- a/hooks/fsmonitor-watchman.sample +++ /dev/null @@ -1,173 +0,0 @@ -#!/usr/bin/perl - -use strict; -use warnings; -use IPC::Open2; - -# An example hook script to integrate Watchman -# (https://facebook.github.io/watchman/) with git to speed up detecting -# new and modified files. -# -# The hook is passed a version (currently 2) and last update token -# formatted as a string and outputs to stdout a new update token and -# all files that have been modified since the update token. Paths must -# be relative to the root of the working tree and separated by a single NUL. -# -# To enable this hook, rename this file to "query-watchman" and set -# 'git config core.fsmonitor .git/hooks/query-watchman' -# -my ($version, $last_update_token) = @ARGV; - -# Uncomment for debugging -# print STDERR "$0 $version $last_update_token\n"; - -# Check the hook interface version -if ($version ne 2) { - die "Unsupported query-fsmonitor hook version '$version'.\n" . - "Falling back to scanning...\n"; -} - -my $git_work_tree = get_working_dir(); - -my $retry = 1; - -my $json_pkg; -eval { - require JSON::XS; - $json_pkg = "JSON::XS"; - 1; -} or do { - require JSON::PP; - $json_pkg = "JSON::PP"; -}; - -launch_watchman(); - -sub launch_watchman { - my $o = watchman_query(); - if (is_work_tree_watched($o)) { - output_result($o->{clock}, @{$o->{files}}); - } -} - -sub output_result { - my ($clockid, @files) = @_; - - # Uncomment for debugging watchman output - # open (my $fh, ">", ".git/watchman-output.out"); - # binmode $fh, ":utf8"; - # print $fh "$clockid\n@files\n"; - # close $fh; - - binmode STDOUT, ":utf8"; - print $clockid; - print "\0"; - local $, = "\0"; - print @files; -} - -sub watchman_clock { - my $response = qx/watchman clock "$git_work_tree"/; - die "Failed to get clock id on '$git_work_tree'.\n" . - "Falling back to scanning...\n" if $? != 0; - - return $json_pkg->new->utf8->decode($response); -} - -sub watchman_query { - my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty') - or die "open2() failed: $!\n" . - "Falling back to scanning...\n"; - - # In the query expression below we're asking for names of files that - # changed since $last_update_token but not from the .git folder. - # - # To accomplish this, we're using the "since" generator to use the - # recency index to select candidate nodes and "fields" to limit the - # output to file names only. Then we're using the "expression" term to - # further constrain the results. - if (substr($last_update_token, 0, 1) eq "c") { - $last_update_token = "\"$last_update_token\""; - } - my $query = <<" END"; - ["query", "$git_work_tree", { - "since": $last_update_token, - "fields": ["name"], - "expression": ["not", ["dirname", ".git"]] - }] - END - - # Uncomment for debugging the watchman query - # open (my $fh, ">", ".git/watchman-query.json"); - # print $fh $query; - # close $fh; - - print CHLD_IN $query; - close CHLD_IN; - my $response = do {local $/; }; - - # Uncomment for debugging the watch response - # open ($fh, ">", ".git/watchman-response.json"); - # print $fh $response; - # close $fh; - - die "Watchman: command returned no output.\n" . - "Falling back to scanning...\n" if $response eq ""; - die "Watchman: command returned invalid output: $response\n" . - "Falling back to scanning...\n" unless $response =~ /^\{/; - - return $json_pkg->new->utf8->decode($response); -} - -sub is_work_tree_watched { - my ($output) = @_; - my $error = $output->{error}; - if ($retry > 0 and $error and $error =~ m/unable to resolve root .* directory (.*) is not watched/) { - $retry--; - my $response = qx/watchman watch "$git_work_tree"/; - die "Failed to make watchman watch '$git_work_tree'.\n" . - "Falling back to scanning...\n" if $? != 0; - $output = $json_pkg->new->utf8->decode($response); - $error = $output->{error}; - die "Watchman: $error.\n" . - "Falling back to scanning...\n" if $error; - - # Uncomment for debugging watchman output - # open (my $fh, ">", ".git/watchman-output.out"); - # close $fh; - - # Watchman will always return all files on the first query so - # return the fast "everything is dirty" flag to git and do the - # Watchman query just to get it over with now so we won't pay - # the cost in git to look up each individual file. - my $o = watchman_clock(); - $error = $output->{error}; - - die "Watchman: $error.\n" . - "Falling back to scanning...\n" if $error; - - output_result($o->{clock}, ("/")); - $last_update_token = $o->{clock}; - - eval { launch_watchman() }; - return 0; - } - - die "Watchman: $error.\n" . - "Falling back to scanning...\n" if $error; - - return 1; -} - -sub get_working_dir { - my $working_dir; - if ($^O =~ 'msys' || $^O =~ 'cygwin') { - $working_dir = Win32::GetCwd(); - $working_dir =~ tr/\\/\//; - } else { - require Cwd; - $working_dir = Cwd::cwd(); - } - - return $working_dir; -} diff --git a/hooks/post-update.sample b/hooks/post-update.sample deleted file mode 100644 index ec17ec1..0000000 --- a/hooks/post-update.sample +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -# -# An example hook script to prepare a packed repository for use over -# dumb transports. -# -# To enable this hook, rename this file to "post-update". - -exec git update-server-info diff --git a/hooks/pre-applypatch.sample b/hooks/pre-applypatch.sample deleted file mode 100644 index 4142082..0000000 --- a/hooks/pre-applypatch.sample +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -# -# An example hook script to verify what is about to be committed -# by applypatch from an e-mail message. -# -# The hook should exit with non-zero status after issuing an -# appropriate message if it wants to stop the commit. -# -# To enable this hook, rename this file to "pre-applypatch". - -. git-sh-setup -precommit="$(git rev-parse --git-path hooks/pre-commit)" -test -x "$precommit" && exec "$precommit" ${1+"$@"} -: diff --git a/hooks/pre-commit.sample b/hooks/pre-commit.sample deleted file mode 100644 index e144712..0000000 --- a/hooks/pre-commit.sample +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# -# An example hook script to verify what is about to be committed. -# Called by "git commit" with no arguments. The hook should -# exit with non-zero status after issuing an appropriate message if -# it wants to stop the commit. -# -# To enable this hook, rename this file to "pre-commit". - -if git rev-parse --verify HEAD >/dev/null 2>&1 -then - against=HEAD -else - # Initial commit: diff against an empty tree object - against=$(git hash-object -t tree /dev/null) -fi - -# If you want to allow non-ASCII filenames set this variable to true. -allownonascii=$(git config --type=bool hooks.allownonascii) - -# Redirect output to stderr. -exec 1>&2 - -# Cross platform projects tend to avoid non-ASCII filenames; prevent -# them from being added to the repository. We exploit the fact that the -# printable range starts at the space character and ends with tilde. -if [ "$allownonascii" != "true" ] && - # Note that the use of brackets around a tr range is ok here, (it's - # even required, for portability to Solaris 10's /usr/bin/tr), since - # the square bracket bytes happen to fall in the designated range. - test $(git diff --cached --name-only --diff-filter=A -z $against | - LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 -then - cat <<\EOF -Error: Attempt to add a non-ASCII file name. - -This can cause problems if you want to work with people on other platforms. - -To be portable it is advisable to rename the file. - -If you know what you are doing you can disable this check using: - - git config hooks.allownonascii true -EOF - exit 1 -fi - -# If there are whitespace errors, print the offending file names and fail. -exec git diff-index --check --cached $against -- diff --git a/hooks/pre-merge-commit.sample b/hooks/pre-merge-commit.sample deleted file mode 100644 index 399eab1..0000000 --- a/hooks/pre-merge-commit.sample +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -# -# An example hook script to verify what is about to be committed. -# Called by "git merge" with no arguments. The hook should -# exit with non-zero status after issuing an appropriate message to -# stderr if it wants to stop the merge commit. -# -# To enable this hook, rename this file to "pre-merge-commit". - -. git-sh-setup -test -x "$GIT_DIR/hooks/pre-commit" && - exec "$GIT_DIR/hooks/pre-commit" -: diff --git a/hooks/pre-push.sample b/hooks/pre-push.sample deleted file mode 100644 index 4ce688d..0000000 --- a/hooks/pre-push.sample +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh - -# An example hook script to verify what is about to be pushed. Called by "git -# push" after it has checked the remote status, but before anything has been -# pushed. If this script exits with a non-zero status nothing will be pushed. -# -# This hook is called with the following parameters: -# -# $1 -- Name of the remote to which the push is being done -# $2 -- URL to which the push is being done -# -# If pushing without using a named remote those arguments will be equal. -# -# Information about the commits which are being pushed is supplied as lines to -# the standard input in the form: -# -# -# -# This sample shows how to prevent push of commits where the log message starts -# with "WIP" (work in progress). - -remote="$1" -url="$2" - -zero=$(git hash-object --stdin &2 "Found WIP commit in $local_ref, not pushing" - exit 1 - fi - fi -done - -exit 0 diff --git a/hooks/pre-rebase.sample b/hooks/pre-rebase.sample deleted file mode 100644 index 6cbef5c..0000000 --- a/hooks/pre-rebase.sample +++ /dev/null @@ -1,169 +0,0 @@ -#!/bin/sh -# -# Copyright (c) 2006, 2008 Junio C Hamano -# -# The "pre-rebase" hook is run just before "git rebase" starts doing -# its job, and can prevent the command from running by exiting with -# non-zero status. -# -# The hook is called with the following parameters: -# -# $1 -- the upstream the series was forked from. -# $2 -- the branch being rebased (or empty when rebasing the current branch). -# -# This sample shows how to prevent topic branches that are already -# merged to 'next' branch from getting rebased, because allowing it -# would result in rebasing already published history. - -publish=next -basebranch="$1" -if test "$#" = 2 -then - topic="refs/heads/$2" -else - topic=`git symbolic-ref HEAD` || - exit 0 ;# we do not interrupt rebasing detached HEAD -fi - -case "$topic" in -refs/heads/??/*) - ;; -*) - exit 0 ;# we do not interrupt others. - ;; -esac - -# Now we are dealing with a topic branch being rebased -# on top of master. Is it OK to rebase it? - -# Does the topic really exist? -git show-ref -q "$topic" || { - echo >&2 "No such branch $topic" - exit 1 -} - -# Is topic fully merged to master? -not_in_master=`git rev-list --pretty=oneline ^master "$topic"` -if test -z "$not_in_master" -then - echo >&2 "$topic is fully merged to master; better remove it." - exit 1 ;# we could allow it, but there is no point. -fi - -# Is topic ever merged to next? If so you should not be rebasing it. -only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` -only_next_2=`git rev-list ^master ${publish} | sort` -if test "$only_next_1" = "$only_next_2" -then - not_in_topic=`git rev-list "^$topic" master` - if test -z "$not_in_topic" - then - echo >&2 "$topic is already up to date with master" - exit 1 ;# we could allow it, but there is no point. - else - exit 0 - fi -else - not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` - /usr/bin/perl -e ' - my $topic = $ARGV[0]; - my $msg = "* $topic has commits already merged to public branch:\n"; - my (%not_in_next) = map { - /^([0-9a-f]+) /; - ($1 => 1); - } split(/\n/, $ARGV[1]); - for my $elem (map { - /^([0-9a-f]+) (.*)$/; - [$1 => $2]; - } split(/\n/, $ARGV[2])) { - if (!exists $not_in_next{$elem->[0]}) { - if ($msg) { - print STDERR $msg; - undef $msg; - } - print STDERR " $elem->[1]\n"; - } - } - ' "$topic" "$not_in_next" "$not_in_master" - exit 1 -fi - -<<\DOC_END - -This sample hook safeguards topic branches that have been -published from being rewound. - -The workflow assumed here is: - - * Once a topic branch forks from "master", "master" is never - merged into it again (either directly or indirectly). - - * Once a topic branch is fully cooked and merged into "master", - it is deleted. If you need to build on top of it to correct - earlier mistakes, a new topic branch is created by forking at - the tip of the "master". This is not strictly necessary, but - it makes it easier to keep your history simple. - - * Whenever you need to test or publish your changes to topic - branches, merge them into "next" branch. - -The script, being an example, hardcodes the publish branch name -to be "next", but it is trivial to make it configurable via -$GIT_DIR/config mechanism. - -With this workflow, you would want to know: - -(1) ... if a topic branch has ever been merged to "next". Young - topic branches can have stupid mistakes you would rather - clean up before publishing, and things that have not been - merged into other branches can be easily rebased without - affecting other people. But once it is published, you would - not want to rewind it. - -(2) ... if a topic branch has been fully merged to "master". - Then you can delete it. More importantly, you should not - build on top of it -- other people may already want to - change things related to the topic as patches against your - "master", so if you need further changes, it is better to - fork the topic (perhaps with the same name) afresh from the - tip of "master". - -Let's look at this example: - - o---o---o---o---o---o---o---o---o---o "next" - / / / / - / a---a---b A / / - / / / / - / / c---c---c---c B / - / / / \ / - / / / b---b C \ / - / / / / \ / - ---o---o---o---o---o---o---o---o---o---o---o "master" - - -A, B and C are topic branches. - - * A has one fix since it was merged up to "next". - - * B has finished. It has been fully merged up to "master" and "next", - and is ready to be deleted. - - * C has not merged to "next" at all. - -We would want to allow C to be rebased, refuse A, and encourage -B to be deleted. - -To compute (1): - - git rev-list ^master ^topic next - git rev-list ^master next - - if these match, topic has not merged in next at all. - -To compute (2): - - git rev-list master..topic - - if this is empty, it is fully merged to "master". - -DOC_END diff --git a/hooks/pre-receive.sample b/hooks/pre-receive.sample deleted file mode 100644 index a1fd29e..0000000 --- a/hooks/pre-receive.sample +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh -# -# An example hook script to make use of push options. -# The example simply echoes all push options that start with 'echoback=' -# and rejects all pushes when the "reject" push option is used. -# -# To enable this hook, rename this file to "pre-receive". - -if test -n "$GIT_PUSH_OPTION_COUNT" -then - i=0 - while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" - do - eval "value=\$GIT_PUSH_OPTION_$i" - case "$value" in - echoback=*) - echo "echo from the pre-receive-hook: ${value#*=}" >&2 - ;; - reject) - exit 1 - esac - i=$((i + 1)) - done -fi diff --git a/hooks/prepare-commit-msg.sample b/hooks/prepare-commit-msg.sample deleted file mode 100644 index 10fa14c..0000000 --- a/hooks/prepare-commit-msg.sample +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/sh -# -# An example hook script to prepare the commit log message. -# Called by "git commit" with the name of the file that has the -# commit message, followed by the description of the commit -# message's source. The hook's purpose is to edit the commit -# message file. If the hook fails with a non-zero status, -# the commit is aborted. -# -# To enable this hook, rename this file to "prepare-commit-msg". - -# This hook includes three examples. The first one removes the -# "# Please enter the commit message..." help message. -# -# The second includes the output of "git diff --name-status -r" -# into the message, just before the "git status" output. It is -# commented because it doesn't cope with --amend or with squashed -# commits. -# -# The third example adds a Signed-off-by line to the message, that can -# still be edited. This is rarely a good idea. - -COMMIT_MSG_FILE=$1 -COMMIT_SOURCE=$2 -SHA1=$3 - -/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE" - -# case "$COMMIT_SOURCE,$SHA1" in -# ,|template,) -# /usr/bin/perl -i.bak -pe ' -# print "\n" . `git diff --cached --name-status -r` -# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;; -# *) ;; -# esac - -# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') -# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE" -# if test -z "$COMMIT_SOURCE" -# then -# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE" -# fi diff --git a/hooks/push-to-checkout.sample b/hooks/push-to-checkout.sample deleted file mode 100644 index af5a0c0..0000000 --- a/hooks/push-to-checkout.sample +++ /dev/null @@ -1,78 +0,0 @@ -#!/bin/sh - -# An example hook script to update a checked-out tree on a git push. -# -# This hook is invoked by git-receive-pack(1) when it reacts to git -# push and updates reference(s) in its repository, and when the push -# tries to update the branch that is currently checked out and the -# receive.denyCurrentBranch configuration variable is set to -# updateInstead. -# -# By default, such a push is refused if the working tree and the index -# of the remote repository has any difference from the currently -# checked out commit; when both the working tree and the index match -# the current commit, they are updated to match the newly pushed tip -# of the branch. This hook is to be used to override the default -# behaviour; however the code below reimplements the default behaviour -# as a starting point for convenient modification. -# -# The hook receives the commit with which the tip of the current -# branch is going to be updated: -commit=$1 - -# It can exit with a non-zero status to refuse the push (when it does -# so, it must not modify the index or the working tree). -die () { - echo >&2 "$*" - exit 1 -} - -# Or it can make any necessary changes to the working tree and to the -# index to bring them to the desired state when the tip of the current -# branch is updated to the new commit, and exit with a zero status. -# -# For example, the hook can simply run git read-tree -u -m HEAD "$1" -# in order to emulate git fetch that is run in the reverse direction -# with git push, as the two-tree form of git read-tree -u -m is -# essentially the same as git switch or git checkout that switches -# branches while keeping the local changes in the working tree that do -# not interfere with the difference between the branches. - -# The below is a more-or-less exact translation to shell of the C code -# for the default behaviour for git's push-to-checkout hook defined in -# the push_to_deploy() function in builtin/receive-pack.c. -# -# Note that the hook will be executed from the repository directory, -# not from the working tree, so if you want to perform operations on -# the working tree, you will have to adapt your code accordingly, e.g. -# by adding "cd .." or using relative paths. - -if ! git update-index -q --ignore-submodules --refresh -then - die "Up-to-date check failed" -fi - -if ! git diff-files --quiet --ignore-submodules -- -then - die "Working directory has unstaged changes" -fi - -# This is a rough translation of: -# -# head_has_history() ? "HEAD" : EMPTY_TREE_SHA1_HEX -if git cat-file -e HEAD 2>/dev/null -then - head=HEAD -else - head=$(git hash-object -t tree --stdin &2 - echo " (if you want, you could supply GIT_DIR then run" >&2 - echo " $0 )" >&2 - exit 1 -fi - -if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then - echo "usage: $0 " >&2 - exit 1 -fi - -# --- Config -allowunannotated=$(git config --type=bool hooks.allowunannotated) -allowdeletebranch=$(git config --type=bool hooks.allowdeletebranch) -denycreatebranch=$(git config --type=bool hooks.denycreatebranch) -allowdeletetag=$(git config --type=bool hooks.allowdeletetag) -allowmodifytag=$(git config --type=bool hooks.allowmodifytag) - -# check for no description -projectdesc=$(sed -e '1q' "$GIT_DIR/description") -case "$projectdesc" in -"Unnamed repository"* | "") - echo "*** Project description file hasn't been set" >&2 - exit 1 - ;; -esac - -# --- Check types -# if $newrev is 0000...0000, it's a commit to delete a ref. -zero=$(git hash-object --stdin &2 - echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 - exit 1 - fi - ;; - refs/tags/*,delete) - # delete tag - if [ "$allowdeletetag" != "true" ]; then - echo "*** Deleting a tag is not allowed in this repository" >&2 - exit 1 - fi - ;; - refs/tags/*,tag) - # annotated tag - if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 - then - echo "*** Tag '$refname' already exists." >&2 - echo "*** Modifying a tag is not allowed in this repository." >&2 - exit 1 - fi - ;; - refs/heads/*,commit) - # branch - if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then - echo "*** Creating a branch is not allowed in this repository" >&2 - exit 1 - fi - ;; - refs/heads/*,delete) - # delete branch - if [ "$allowdeletebranch" != "true" ]; then - echo "*** Deleting a branch is not allowed in this repository" >&2 - exit 1 - fi - ;; - refs/remotes/*,commit) - # tracking branch - ;; - refs/remotes/*,delete) - # delete tracking branch - if [ "$allowdeletebranch" != "true" ]; then - echo "*** Deleting a tracking branch is not allowed in this repository" >&2 - exit 1 - fi - ;; - *) - # Anything else (is there anything else?) - echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 - exit 1 - ;; -esac - -# --- Finished -exit 0 diff --git a/info/exclude b/info/exclude deleted file mode 100644 index a5196d1..0000000 --- a/info/exclude +++ /dev/null @@ -1,6 +0,0 @@ -# git ls-files --others --exclude-from=.git/info/exclude -# Lines that start with '#' are comments. -# For a project mostly in C, the following would be a good set of -# exclude patterns (uncomment them if you want to use them): -# *.[oa] -# *~ diff --git a/objects/73/adf8535710c3557b88f5636d458e712c836aa9 b/objects/73/adf8535710c3557b88f5636d458e712c836aa9 deleted file mode 100644 index 0e8e497d92eabfcac8c0b0b60b796ba16a2255b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88 zcmV-e0H^AWiT`_Ff%bx&`ZxO$xP47FG^+T(W^1++@y8H^u1Kysm&jg uR!$RDhpGy4b#(D{)yqv`_$yS^WBTbvM-E%t`O{{z-WUtL76Aab5+75{9w?Up diff --git a/objects/8c/2e7c3189b22ac435ef1a8ecab3f162a9961527 b/objects/8c/2e7c3189b22ac435ef1a8ecab3f162a9961527 deleted file mode 100644 index 66fc8caa82486f1eace2e278a845b6d5cf7fe6a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmV;*0yX`30c}*lZrd;n-8o;up|=3BFm%9x9R{RnQD9inVo7@me2^{1QEQ8aD0j)e zex#f<>9$M6h~ncT`RJ;p3O-$a{_^1hX0zEhcnm)6Cl|2VdWNF$$v1%_!p64h=X5S47u+$ zMd8*{a6%hwj+U`yCWpt9k7hl$rMlQmr)F9xycYNvq}?3`9iarZK1hZS%O@^QXj4K%~bQuheQnqj52oz-!aLsd|>$L9mXTd8OB4# zWpm@a02v9m$^jYd$@5@aSf;^w>9(y!eJ6<(ujA})qje(Jf80&JA6xy7)zi}4U7H03 z9$EsXc1WHA*x=rTtP8-Cn_W*)>bO^JiC%MnnM{kCRqrRu4mtxJO+h;w z|KA9C#ii;xS{Z*tt&}IcXCF3Hq+Qa)SGr3|+x9Q|YnA(0v#nojgZgNp2<<-kn$H+2 z{v?Bsu34p6g;d>ROkTPxp$~#0GMPIk%4S<>)6c}AT0Xhnl)b)orRA$(E3=-RIyDb2l9wELDc+&WH$XPlcCt>R*H}At?3}~@UKz>x2gd`_v^fM`KL7v# diff --git a/objects/ae/e17d58eb3c6441001eaf42956edcea9d9a5694 b/objects/ae/e17d58eb3c6441001eaf42956edcea9d9a5694 deleted file mode 100644 index f3e7c1a..0000000 --- a/objects/ae/e17d58eb3c6441001eaf42956edcea9d9a5694 +++ /dev/null @@ -1,3 +0,0 @@ -x曂Q -!釣=偶63AD肍e島]睃A潬忠1鸀0啒厫豗E"~奷蜩銠$;醔妈s邸Xr甂9贷K菙鈽t絹-YG+z;4彽  -7O \ No newline at end of file diff --git a/objects/fd/127a8c35f2d8886c0686cfcb369aec3312eb14 b/objects/fd/127a8c35f2d8886c0686cfcb369aec3312eb14 deleted file mode 100644 index 337e0b6b8043d687ac456f260d7b42d8d4bd9766..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30 mcmb_VTioRt^@$XVhoo6 diff --git a/tgitchangelist b/tgitchangelist new file mode 100644 index 0000000..e69de29