checkout: ignore 'U'pdate line, show number of files/directories checked out
This commit is contained in:
parent
0a1ddbfd3f
commit
8a795ce265
17
lib/svi.rb
17
lib/svi.rb
@ -9,6 +9,7 @@ module Svi
|
|||||||
|
|
||||||
def checkout(url)
|
def checkout(url)
|
||||||
last_checkout_message = ""
|
last_checkout_message = ""
|
||||||
|
checked_out_paths = []
|
||||||
clear_message = lambda do
|
clear_message = lambda do
|
||||||
if last_checkout_message.size > 0
|
if last_checkout_message.size > 0
|
||||||
clear = ""
|
clear = ""
|
||||||
@ -25,10 +26,26 @@ module Svi
|
|||||||
SvnRunner.run_svn("checkout", [url], allow_interactive: true) do |line|
|
SvnRunner.run_svn("checkout", [url], allow_interactive: true) do |line|
|
||||||
if line =~ /^A.{4}(.*)$/
|
if line =~ /^A.{4}(.*)$/
|
||||||
path = $1
|
path = $1
|
||||||
|
checked_out_paths << path
|
||||||
clear_message[]
|
clear_message[]
|
||||||
last_checkout_message = "Checking out #{path}..."
|
last_checkout_message = "Checking out #{path}..."
|
||||||
$stdout.write(last_checkout_message)
|
$stdout.write(last_checkout_message)
|
||||||
$stdout.flush
|
$stdout.flush
|
||||||
|
elsif line =~ /^\sU\s{3}/
|
||||||
|
# Ignore the 'U'pdate line of the checkout directory itself.
|
||||||
|
elsif line =~ /^Checked out revision (\d+)/
|
||||||
|
revision = $1
|
||||||
|
clear_message[]
|
||||||
|
n_files = 0
|
||||||
|
n_directories = 0
|
||||||
|
checked_out_paths.uniq.each do |path|
|
||||||
|
if File.directory?(path)
|
||||||
|
n_directories += 1
|
||||||
|
else
|
||||||
|
n_files += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
$stdout.puts "Checked out revision #{revision}: #{n_files} file#{n_files == 1 ? '' : 's'}, #{n_directories} director#{n_directories == 1 ? 'y' : 'ies'}"
|
||||||
else
|
else
|
||||||
clear_message[]
|
clear_message[]
|
||||||
$stdout.puts line
|
$stdout.puts line
|
||||||
|
Loading…
x
Reference in New Issue
Block a user