diff options
-rw-r--r-- | src/cuirass/repo.scm | 38 | ||||
-rw-r--r-- | tests/repo.scm | 32 |
2 files changed, 1 insertions, 69 deletions
diff --git a/src/cuirass/repo.scm b/src/cuirass/repo.scm index be5ea5b..26ea328 100644 --- a/src/cuirass/repo.scm +++ b/src/cuirass/repo.scm @@ -30,8 +30,7 @@ repo-snapshot repo-updater repo-update - file-repo - git-repo)) + file-repo)) (define-immutable-record-type <repo> ;; An Abstract repository. Use "repo" as a shortname for "repository". @@ -79,38 +78,3 @@ #:location file-name #:snapshoter file-repo-snapshot #:updater file-repo-update)))) - -(define git-repo - (let ((git "git") - (hash-algo "sha256")) - (define (git-repo-snapshot this store) - "Add a snapshot of URL to STORE. " - (let ((dir (repo-location this)) - (id (repo-id this))) - (call-with-temporary-directory - (λ (tmpdir) - (let ((tmp-repo (string-append tmpdir "/" dir))) - (and (zero? (system* "cp" "-R" dir tmpdir)) - (with-directory-excursion tmp-repo - (zero? (system* "rm" "-rf" ".git"))) - (add-to-store store id #t hash-algo tmp-repo))))))) - - (define (git-repo-update this ref) - (let ((url (repo-url this)) - (dir (repo-location this))) - (and - (or (file-exists? dir) - (zero? (system* git "clone" url dir)) - (error "file not found")) - (with-directory-excursion dir - (and (zero? (system* git "pull")) - (zero? (system* git "reset" "--hard" ref))))))) - - (λ* (#:key url dir) - "Create a Git repository. URL is the location of the remote repository. -REF is the identifier that is tracked." - (repo #:id dir - #:url url - #:location dir - #:snapshoter git-repo-snapshot - #:updater git-repo-update)))) diff --git a/tests/repo.scm b/tests/repo.scm index fc73a64..8890c0a 100644 --- a/tests/repo.scm +++ b/tests/repo.scm @@ -76,38 +76,6 @@ name." ;; Cleanup. (delete-file file-name)) -;;; -;;; Git repository. -;;; - -(define (create-git-repository name) - (let ((git "git")) - (system* git "init" name) - (with-directory-excursion name - (create-file "foo") - (system* git "add" "foo") - (system* git "commit" "-m" "'foo'")))) - -(test-group-with-cleanup "git-repo" - (define rpt (git-repo #:url file-name - #:dir "git-example")) - - ;; Since repository doesn't exist yet, 'repo-update' should throw an error. - (test-error "git-repo-update: file not found" - 'system-error - (repo-update rpt "master")) - - (create-git-repository file-name) - - (test-assert "git-repo-update" - (repo-update rpt "master")) - - (test-assert "git-repo-snapshot" - (in-store? (repo-snapshot rpt store))) - - ;; Cleanup. - (system* "rm" "-rf" file-name "git-example")) - (close-connection store) (test-end) |