[Risolto] [Bash] Svn Update
Re: [Bash] Svn Update
Dall'output sembra di si, ma da `svn help info` sembra di no... 
Volans
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
- Demiurgo
- Entusiasta Emergente

- Messaggi: 2093
- Iscrizione: domenica 10 giugno 2007, 13:06
- Località: Pesaro
Re: [Bash] Svn Update
Dannazione >:(Volans ha scritto: Dall'output sembra di si, ma da `svn help info` sembra di no...![]()
Quindi? hai qualche idea in particolare?
NuDe Project: >
Se volete fare due chiacchiere o avete bisogno di una mano per qualcosa questo è il mio contatto msn: demiurgo-linux@hotmail.it
- Demiurgo
- Entusiasta Emergente

- Messaggi: 2093
- Iscrizione: domenica 10 giugno 2007, 13:06
- Località: Pesaro
Re: [Bash] Svn Update
Dai ragazzi!
non siate timidi!
Ne ho bisogno! >:(
Ne ho bisogno! >:(
NuDe Project: >
Se volete fare due chiacchiere o avete bisogno di una mano per qualcosa questo è il mio contatto msn: demiurgo-linux@hotmail.it
- Demiurgo
- Entusiasta Emergente

- Messaggi: 2093
- Iscrizione: domenica 10 giugno 2007, 13:06
- Località: Pesaro
Re: [Bash] Svn Update
Potresti provare con il comandoMarkon ha scritto: Potrebbe essere un'idea, ma dovresti essere sicuro che se l'output è maggiore di uno allora ci sono aggiornamenti, nel senso che a me con emesene mi dà questo:
Però a quanto pare non è un aggiornamento, quindi non saprei...Codice: Seleziona tutto
$ svn status -u emesene/ ? emesene/MANIFEST Stato rispetto alla revisione: 1453
Ciao![]()
Codice: Seleziona tutto
svn status -uqIl ? indica un file presente nella tua copia locale ma non ne repository...
NuDe Project: >
Se volete fare due chiacchiere o avete bisogno di una mano per qualcosa questo è il mio contatto msn: demiurgo-linux@hotmail.it
Re: [Bash] Svn Update
Qual'è la domanda?
I file con "?" sono quelli che non sono sotto il controllo di SVN, quindi non puoi averli scaricati da SVN ma sono files aggiunti localmente. (pensa ad un programma che si compila, tu scarichi i sorgenti e lo compili, dopo avrai tanti files "nuovi" che se fai un svn status ti dice che non sono sotto il controllo di SVN)
I file con "?" sono quelli che non sono sotto il controllo di SVN, quindi non puoi averli scaricati da SVN ma sono files aggiunti localmente. (pensa ad un programma che si compila, tu scarichi i sorgenti e lo compili, dopo avrai tanti files "nuovi" che se fai un svn status ti dice che non sono sotto il controllo di SVN)
Volans
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
- Demiurgo
- Entusiasta Emergente

- Messaggi: 2093
- Iscrizione: domenica 10 giugno 2007, 13:06
- Località: Pesaro
Re: [Bash] Svn Update
La mia richiesta era specifica per Markon perchè, per quanto ho capito, con il parametro q non segnala i ? e quindi sarebbe la soluzione al nostro problema, volevo solo la conferma da parte sua:
Ho trovato un comando molto interessante con i quel potrei risolvere il problema:
Potrebbe andare?
Ho trovato un comando molto interessante con i quel potrei risolvere il problema:
Codice: Seleziona tutto
svn status -uq > svnstatus.txt
$rev=`wc --lines svnstatus.txt | grep svnstatus.txt`NuDe Project: >
Se volete fare due chiacchiere o avete bisogno di una mano per qualcosa questo è il mio contatto msn: demiurgo-linux@hotmail.it
Re: [Bash] Svn Update
Se proprio vogliamo trovare il pelo nell'uovo il -uq te lo avevo suggerito io
Comunque come ti ho già detto prima se fai un controllo di questo genere io andrei a controllare che effettivamente ci sono dei file da aggiornare (simbolo *) e che non ci siano conflitti dopo l'update.
Il tuo comando non mi è chiaro, wc -l ritorna il numero di righe, a cosa ti serve fare il grep del nome del file?
Comunque come ti ho già detto prima se fai un controllo di questo genere io andrei a controllare che effettivamente ci sono dei file da aggiornare (simbolo *) e che non ci siano conflitti dopo l'update.
Il tuo comando non mi è chiaro, wc -l ritorna il numero di righe, a cosa ti serve fare il grep del nome del file?
Volans
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
- Demiurgo
- Entusiasta Emergente

- Messaggi: 2093
- Iscrizione: domenica 10 giugno 2007, 13:06
- Località: Pesaro
Re: [Bash] Svn Update
Sisi, lo so ... non mi prendo il merito, ho solo seguito il tuo consiglio!Volans ha scritto: Se proprio vogliamo trovare il pelo nell'uovo il -uq te lo avevo suggerito io![]()
se non mi sbaglio il simbolo * viene utilizzato per i file Nuovi, per quelli modificati ad esempio si utilizza la M...Volans ha scritto: Comunque come ti ho già detto prima se fai un controllo di questo genere io andrei a controllare che effettivamente ci sono dei file da aggiornare (simbolo *) e che non ci siano conflitti dopo l'update.
L'output del comando diventa di questo tipo:Volans ha scritto: Il tuo comando non mi è chiaro, wc -l ritorna il numero di righe, a cosa ti serve fare il grep del nome del file?
Codice: Seleziona tutto
[numero_righe] [nome_file] NuDe Project: >
Se volete fare due chiacchiere o avete bisogno di una mano per qualcosa questo è il mio contatto msn: demiurgo-linux@hotmail.it
Re: [Bash] Svn Update
Ci sono alcune incongruenze:
- come puoi vedere leggendo `svn help status` la M è per i file modificati in locale mentre l'asterisco è per quelli che saranno aggiornati se si fa un `svn up`
- wc -l non mi sembra una buona soluzione perché tu devi controllare che ci sia almeno un file da aggiornare, se ci sono file modificati in locale non ti cambia nulla. Inoltre se usi wc -l devi togliere il nome del file, quindi usare `wc -l file | sed s/' .*$'/''/`e non grep
- come ti ho già detto sopra se c'è la rete puoi anche fare comunque un `svn up`, l'unica cosa è che devi controllare l'output per evitare conflitti.
- come puoi vedere leggendo `svn help status` la M è per i file modificati in locale mentre l'asterisco è per quelli che saranno aggiornati se si fa un `svn up`
- wc -l non mi sembra una buona soluzione perché tu devi controllare che ci sia almeno un file da aggiornare, se ci sono file modificati in locale non ti cambia nulla. Inoltre se usi wc -l devi togliere il nome del file, quindi usare `wc -l file | sed s/' .*$'/''/`e non grep
- come ti ho già detto sopra se c'è la rete puoi anche fare comunque un `svn up`, l'unica cosa è che devi controllare l'output per evitare conflitti.
Volans
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
- Demiurgo
- Entusiasta Emergente

- Messaggi: 2093
- Iscrizione: domenica 10 giugno 2007, 13:06
- Località: Pesaro
Re: [Bash] Svn Update
Quindi mi suggerisci di fare così??
L'utente non deve modificare i file in locale e, nel caso in cui lo faccia, è tenuto comunque ad inviarli a noi amministratori in modo da poter rendere disponibile l'aggiornamento a tutti...
Codice: Seleziona tutto
svn status -uq > svnstatus.txt
$rev=`wc -l file | sed s/' .*$'/''/`NuDe Project: >
Se volete fare due chiacchiere o avete bisogno di una mano per qualcosa questo è il mio contatto msn: demiurgo-linux@hotmail.it
Re: [Bash] Svn Update
Io di solito quando programmo cerco di fare tutto "user-free" e "bug-free", mentre la seconda accezione è ovvia, con la prima intendo prendere in considerazione qualsiasi comportamento l'utente potrà avere, anche il più assurdo, perché non sai mai che può fare un utente.
Per questo motivo, dato che sia per fare `svn status -u` che per fare `svn up` serve avere una connessione attiva, farei direttamente l'up e mi concentrerei sull'output dell'up così da evidenziare eventuali anomalie, conflitti eccc
Magari aggiungendo prima un controllo per vedere se la rete è attiva.
Per questo motivo, dato che sia per fare `svn status -u` che per fare `svn up` serve avere una connessione attiva, farei direttamente l'up e mi concentrerei sull'output dell'up così da evidenziare eventuali anomalie, conflitti eccc
Magari aggiungendo prima un controllo per vedere se la rete è attiva.
Volans
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
- Demiurgo
- Entusiasta Emergente

- Messaggi: 2093
- Iscrizione: domenica 10 giugno 2007, 13:06
- Località: Pesaro
Re: [Bash] Svn Update
Se io faccio svn up questo mio aggiorna tutto ogni volta che avvio il programma, mentre io preferirei dare la possibilità all'utente di scegliere se effettuare l'update o meno...Volans ha scritto: Per questo motivo, dato che sia per fare `svn status -u` che per fare `svn up` serve avere una connessione attiva, farei direttamente l'up e mi concentrerei sull'output dell'up così da evidenziare eventuali anomalie, conflitti eccc
Volans ha scritto: Magari aggiungendo prima un controllo per vedere se la rete è attiva.
Codice: Seleziona tutto
var=`ping -c 1 www.google.com | grep "received" | awk '{print $4}'`
if [ $var = 1 ]; then
echo "Done";
else
echo "Err";
fiNuDe Project: >
Se volete fare due chiacchiere o avete bisogno di una mano per qualcosa questo è il mio contatto msn: demiurgo-linux@hotmail.it
- Demiurgo
- Entusiasta Emergente

- Messaggi: 2093
- Iscrizione: domenica 10 giugno 2007, 13:06
- Località: Pesaro
Re: [Bash] Svn Update
Ho creato uno script di prova così:
Sembra funzionare per quanto riguarda la parte del ping ma quando va a controllare gli aggiornamenti restituisce da terminale questo errore:
Codice: Seleziona tutto
var=`ping -c 1 www.google.com | grep "received" | awk '{print $4}'`
if [ $var = 1 ]; then
svn status -uq > svnstatus.txt
$rev=`wc -l svnstatus.txt | sed s/' .*$'/''/`
zenity --info --text="in numero di righe è $rev"
else
zenity --error --text="Impossibile controllare gli Aggiornamenti"
fi
e la schermata di zenity che dovrebbe apparire dopo, quella dove viene specificata visualmente la variabile, rimane vuota... ovvero appare scritto:line 5: =1: command not found
senza scrivere nessun numero...il numero di righe è
NuDe Project: >
Se volete fare due chiacchiere o avete bisogno di una mano per qualcosa questo è il mio contatto msn: demiurgo-linux@hotmail.it
Re: [Bash] Svn Update
le variabili le definisci senza il dollaro, solo quando le richiami devi usare il dollaro, potrebbe tornarti utile guardare qualche guida di bash a partire dal nostro wiki 
Anche se continuo a non capire l'utilità di dire all'utente che ci sono N righe nell'svn up, se conosce svn preferirebbe vedere direttamente l'output, se non lo conosce non sa cosa voglia dire... ma queste sono scelte implementative che sta a voi fare
Anche se continuo a non capire l'utilità di dire all'utente che ci sono N righe nell'svn up, se conosce svn preferirebbe vedere direttamente l'output, se non lo conosce non sa cosa voglia dire... ma queste sono scelte implementative che sta a voi fare
Volans
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Prima di scrivere leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
- Demiurgo
- Entusiasta Emergente

- Messaggi: 2093
- Iscrizione: domenica 10 giugno 2007, 13:06
- Località: Pesaro
Re: [Bash] Svn Update
Scusa avevo sbagliato a scrivere...Volans ha scritto: le variabili le definisci senza il dollaro, solo quando le richiami devi usare il dollaro, potrebbe tornarti utile guardare qualche guida di bash a partire dal nostro wiki![]()
Non voglio dire all'utente quante righe ci sono... mi serve a me per capire se fino a li va tutto bene con quella variabile..Volans ha scritto: Anche se continuo a non capire l'utilità di dire all'utente che ci sono N righe nell'svn up, se conosce svn preferirebbe vedere direttamente l'output, se non lo conosce non sa cosa voglia dire... ma queste sono scelte implementative che sta a voi fare![]()
Adesso penso di farcela da solo, se avrò altri problemi provvederò a contattarvi... grazie!
NuDe Project: >
Se volete fare due chiacchiere o avete bisogno di una mano per qualcosa questo è il mio contatto msn: demiurgo-linux@hotmail.it
- Demiurgo
- Entusiasta Emergente

- Messaggi: 2093
- Iscrizione: domenica 10 giugno 2007, 13:06
- Località: Pesaro
Re: [Bash] Svn Update
Risolto
(good)
Enjoy! 
Codice: Seleziona tutto
#!/bin/bash
var=`ping -c 1 www.google.it | grep "received" | awk '{print $4}'`
if [ $var = 1 ]
then
#Ricevo la revisione del Server
svn info [percorso_server] | grep Revisione: > svnstatus.txt
sed -i 's/Revisione: //g' svnstatus.txt
revsvn=` sed -n '1p' svnstatus.txt`
#Ricevo la revisione Locale
svn info [percorso_locale] | grep Revisione: > svnstatuslocale.txt
sed -i 's/Revisione: //g' svnstatuslocale.txt
revsvnloc=` sed -n '1p' svnstatuslocale.txt`
rm svnstatus.txt svnstatuslocale.txt
#Confronto i numeri delle due revisioni
if [ $revsvn -eq $revsvnloc ]
then
zenity --info --text="Non sono presenti aggiornamenti"
else
zenity --question --text="Sono presenti aggiornamenti\n si desidera fare l'update?"
if [ $? -eq 0 ]
then
pass=`zenity --entry --hide-text --text="Inserisci la password di root .:" --title="Update..."`
echo "$pass" | sudo -S svn up [percorso_locale] | tee >(zenity --text-info --title="Update...")
else
zenity --text="Aggiornamento annullato..."
fi
fi
else
zenity --error --text="Impossibile controllare la presenza di aggiornamenti" --title="Errore!"
fiNuDe Project: >
Se volete fare due chiacchiere o avete bisogno di una mano per qualcosa questo è il mio contatto msn: demiurgo-linux@hotmail.it
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti
