public
Fork of francois/piston
Description: Piston is a utility that eases vendor branch management. This repository is a complete reimplementation of Piston to provide different backends, depending on the repositories and working copies you pistonize from.
Homepage: http://piston.rubyforge.org/
Clone URL: git://github.com/btakita/piston.git
Piston::Git::Commit#validate! implementation.

Git doesn't allow us to do many validation checks.  As long as we can talk 
to a remote repository from the URL, we assume we're OK.
francois (author)
Tue May 13 17:17:53 -0700 2008
commit  1d52246f7acabb0fdec2f555430702840146d418
tree    744b3fa8d01e231c8493bedd58a04a48fccff70c
parent  0d066f30f00db013c1dd0ac62b464156dc061b92
...
5
6
7
 
 
 
8
9
10
...
15
16
17
 
 
 
 
 
 
 
 
 
 
 
 
 
18
19
20
...
5
6
7
8
9
10
11
12
13
...
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
0
@@ -5,6 +5,9 @@ require "fileutils"
0
 module Piston
0
   module Git
0
     class Commit < Piston::Revision
0
+ class InvalidCommit < RuntimeError; end
0
+ class Gone < InvalidCommit; end
0
+
0
       alias_method :commit, :revision
0
 
0
       def client
0
@@ -15,6 +18,19 @@ module Piston
0
         client.git(*args)
0
       end
0
 
0
+ def recalled_commit_id
0
+ recalled_values[Piston::Git::COMMIT]
0
+ end
0
+
0
+ def validate!
0
+ begin
0
+ data = git(:ls_remote, @repository.url)
0
+ self
0
+ rescue Piston::Git::Client::CommandError
0
+ raise Piston::Git::Commit::Gone, "Repository at #{@repository.url} does not exist anymore"
0
+ end
0
+ end
0
+
0
       def name
0
         commit[0,7]
0
       end

Comments

    No one has commented yet.