La libreria Git
aggiunge 2>&1
a tutti i comandi. Quindi il tuo comando clone finisce per essere eseguito come:
git clone ... 2>&1
Che finisce per sopprimere tutte le uscite. Tutto ciò che devi fare è sovrascrivere un singolo metodo chiamato run_command
in Git::Lib
e rimuovere quello 2>&1
. Si può provare questo in irb
:
class Git::Lib
class << self
attr_accessor :verbose
end
def run_command(git_cmd, &block)
git_cmd = git_cmd.gsub("2>&1", "").chomp if self.class.verbose
if block_given?
IO.popen(git_cmd, &block)
else
`#{git_cmd}`.chomp
end
end
end
ho definito un extra verbose
attributo. Quindi, ogni volta che hai bisogno delle uscite git, imposta Git::Lib.verbose = true
ed esegui Git.clone
o qualsiasi altro comando, e le uscite effettive verranno stampate.
Che cosa questo farà è, una volta impostato Git::Lib.verbose = true
e quindi chiamare Git.clone
, si visualizzerà la barra di avanzamento git come questo:
Cloning into 'rapidftr-addon-cpims'...
remote: Counting objects: 207, done.
remote: Compressing objects: 100% (108/108), done.
remote: Total 207 (delta 95), reused 201 (delta 90)
Receiving objects: 50% (105/207), 83.10 KiB | 112 KiB/s...
# ^^ The above line is git's progress bar, it will keep updating
Esso non può mostrare la barra di avanzamento nel formato specifico che ci si aspetta , ma mostrerà comunque gli aggiornamenti dinamici mentre avviene il download.
Edit: Aggiunto uscite campione
hmm, va bene così Dimenticate se io uso rubino git gioiello e io uso normale 'git clone git: // github.com/ankit8898/rubymotion-inspect.git'. Come posso ancora trovare la barra di avanzamento del clone. Il mio obiettivo principale è quello di ottenere una barra di progresso usando la gemma ruby-git o il semplice clone git. – AnkitG
Prova a leggere e interpretare l'output di questo comando shell. Forse sarai fortunato. –
bene, questo è un piano di backup. :) Ma non c'è ancora nessun altro modo di usare git clone con la gem di progressbar. Poiché sono interessato a vedere la barra di avanzamento effettiva con clone git. – AnkitG