File: t-no-remote.sh

package info (click to toggle)
git-lfs 3.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,808 kB
  • sloc: sh: 21,256; makefile: 507; ruby: 417
file content (67 lines) | stat: -rwxr-xr-x 1,820 bytes parent folder | download
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
#!/usr/bin/env bash

. "$(dirname "$0")/testlib.sh"

reponame_src="$(basename "$0" ".sh")-src"
reponame_dst="$(basename "$0" ".sh")-dst"

begin_test "fetch lfs-tracked file despite no remote"
(
  set -e

  # First, a repo with an lfs-tracked file we can fetch from
  setup_remote_repo_with_file "$reponame_src" "test_file.dat"

  # Grab the rev for `git archive` later
  echo $(pwd)
  rev=$(git rev-parse HEAD)
  cd ..

  # Initialize a bare repo we can fetch into
  mkdir $reponame_dst
  cd $reponame_dst
  git init . --bare
  echo $(pwd)
  git fetch "$GITSERVER/$reponame_src" refs/heads/main:refs/heads/main
  git archive $rev -o archive.out

  # Verify archive contains our file
  grep "test_file.dat" archive.out

)
end_test

reponame_src_A="$(basename "$0" ".sh")-src-A"
reponame_src_B="$(basename "$0" ".sh")-src-B"
reponame_dst_2="$(basename "$0" ".sh")-dst-2"
begin_test "fallback ignored when remote present"
(
  set -e

  # Initialize 2 repos with different files
  setup_remote_repo_with_file "$reponame_src_A" "test_file_A.dat"
  rev=$(git rev-parse HEAD)
  cd ..
  setup_remote_repo_with_file "$reponame_src_B" "test_file_B.dat"
  cd ..

  mkdir $reponame_dst_2
  cd $reponame_dst_2
  git init . --bare
  echo $(pwd)
  # This part is subtle
  # Add repo A as a remote and fetch from it
  # But then fetch from repo B. This points FETCH_HEAD to repo B
  # We're testing that git-lfs will ignore FETCH_HEAD, since FETCH_HEAD is
  # a fallback, only used when no remote is set
  git remote add origin "$GITSERVER/$reponame_src_A"
  git fetch
  git fetch "$GITSERVER/$reponame_src_B" refs/heads/main:refs/heads/main
  git archive $rev -o archive.out

  # Verify archive contains file from second repo, but not first repo
  grep "test_file_A.dat" archive.out
  grep -v "test_file_B.dat" archive.out
)
end_test