aboutsummaryrefslogtreecommitdiff
path: root/src/util/git-init-repo.pl
blob: 07a6f43815da19a47205aa4f9b6ef36b9dcd51a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#! /usr/bin/perl -w

# Initialise a repository

# 2010-01-29 Erik Schnetter <schnetter@cct.lsu.edu>

use strict;



$#ARGV == 1 or die;
my ($git_cmd, $git_repo) = @ARGV;

my $silent = $ENV{'SILENT'};
$silent = 'yes' if ! defined $silent;
$silent = $silent !~ /^no$/i;
my $silencer = $silent ? '> /dev/null 2>&1' : '';



# If the repository exists already, do nothing
if (-e "$git_repo/.git") {
    exit;
}



print "Formaline: Creating git repository...\n";

# Create the directory for the repository
mkdir $git_repo;
$ENV{'GIT_DIR'} = "$git_repo/.git";

# Create the repository
print "Executing: $git_cmd init-db\n" unless $silent;
system "$git_cmd init-db $silencer";
if ($?) {
    die "Formaline: WARNING: Error while initialising git repository";
}



# Add a README
open README, "> $git_repo/README" or die;
my $today = `date`;
print README "\
This directory $git_repo

is not empty -- it contains a git repository with the Cactus source
trees of all previous builds, starting on $today.

You can use the command \"git branch\" to list all configurations that
are stored in this repository.  The history of each branch is the
sequence in which the configuration was built.  The most recent
build is stored in the branch head, as usual.  In order to check out a
certain branch into a directory <name>, issue the following commands:
        cd <somewhere_else>
        mkdir <name>
        cd <name>
        git init
        git pull $git_repo <branch>

You can also use the command \"git tag -l\" to list all builds that
are stored in this repository.  This keeps the source tree for each
build directly accessible.  In order to check out a certain tag into a
directory <name>, issue the following commands:
        cd <somewhere_else>
        git clone -o <name> $git_repo
        git checkout <tag>"
    or die;
close README or die;