lib/docman/git_util.rb in docman-0.0.8 vs lib/docman/git_util.rb in docman-0.0.9
- old
+ new
@@ -6,21 +6,33 @@
@logger = Logger.new(STDOUT)
def self.exec(command)
@logger.info command
- @logger.info `#{command}`.delete!("\n")
+ result = `#{command}`.delete!("\n")
+ @logger.info result if result
+ raise result unless $?.exitstatus == 0
+ result
end
+ def self.reset_repo(path)
+ Dir.chdir path
+ exec 'git reset --hard'
+ exec 'git clean -f -d'
+ end
+
def self.get(repo, path, type, version)
if File.directory? path and File.directory?(File.join(path, '.git'))
Dir.chdir path
+
+ self.reset_repo(path) if self.repo_changed?(path)
+
if type == 'branch'
exec "git checkout #{version}"
exec "git pull origin #{version}"
end
if type == 'tag'
- exec "git fetch --tags"
+ exec 'git fetch --tags'
exec "git checkout tags/#{version}"
end
else
FileUtils.rm_rf path if File.directory? path
exec "git clone #{repo} #{path}"
\ No newline at end of file