Come modificare un file ed eseguire il commit dal wiki
Situazione
Occorre correggere un singolo file in un repository montato, per esempio un refuso nel file README o un valore in un file di configurazione, e ciò senza client git e senza copia locale.
Panoramica della soluzione
Il browser dei repository offre un editor per singoli file. Richiede il permesso di scrittura (livello 8) sullo spazio dei nomi del mount; con un livello inferiore il pulsante non compare.
Il commit si applica alla revisione del file che l'editor ha caricato. Se nel frattempo il file è cambiato, il server rifiuta il commit anziché sovrascrivere in silenzio la modifica altrui.
Su Azure DevOps il commit lo consegna l'account di servizio. Il valore pushedBy è quindi l'account di servizio, mentre l'autore del commit resta l'utente del wiki; nome e indirizzo di posta elettronica provengono dal suo profilo.
Realizzazione
- Aprite la pagina con la marcatura
{{wk:adogit>…}}, per esempio la pagina repos del vostro progetto. L'intero percorso dall'inizio è descritto nella guida. - Cercate il file nell'albero. Se avete il permesso di scrittura, accanto a esso si trova il pulsante Modifica.
- Scegliete Modifica. Si apre l'editor con i campi Contenuto del file e Messaggio di commit.
- Modificate il contenuto e inserite un messaggio di commit.
- Scegliete Commit. La modifica va direttamente sul ramo mostrato nell'intestazione del browser.
Il server risponde con uno di cinque stati.
| Stato | Significato | Che cosa fare |
|---|---|---|
ok | il commit è applicato | nulla; l'albero mostra il nuovo stato |
denied | sullo spazio dei nomi del mount vi manca il permesso di scrittura | chiedete un livello più alto per il mount |
conflict | il file è cambiato durante la modifica | chiudete l'editor, riaprite il file e ripetete la modifica |
rejected | percorso, ramo o contenuto non hanno superato la verifica | correggete il percorso o il ramo |
error | autenticazione, trasporto o risposta inattesa del server | vedi Diagnostica |
Un nuovo ramo o tag
Quando una modifica non appartiene al ramo mostrato, createne uno nuovo. Nell'intestazione del browser si trova il pulsante Nuovo ramo/tag, visibile solo con il permesso di scrittura.
- Scegliete Nuovo ramo/tag.
- Scegliete il tipo (ramo o tag), inserite il nuovo nome e confermate.
- Il nuovo ramo o tag nasce sulla punta del ramo a cui il browser è fissato.
Un nome esistente non viene sovrascritto; il server risponde con lo stato conflict.
Per vedere anche il nuovo ramo, inserite il suo nome come quarto campo della marcatura sulla pagina:
{{wk:adogit>wvds:DokuWiki-Plugins:wkdoadogit:users/mrossi/correzione}}
Note
- Le schede Branches e Tags nell'intestazione sono inattive. Il ramo mostrato si sceglie nella marcatura sulla pagina, non nell'interfaccia. Creare un nuovo ramo è dunque possibile, passare a esso solo modificando la pagina.
- L'editor tratta un file per volta. Per più file in un solo commit usate
git clone; vedi clonare un repository. - Qui non serve un token personale. Dentro il wiki decidono i permessi di DokuWiki; il token è destinato ai client git esterni.
- Ogni chiamata viene verificata di nuovo. Modifica e commit passano per chiamate che verificano il permesso sul server; il pulsante è una comodità, non un'autorizzazione.
- L'editor non apre file binari né troppo grandi. Al posto del contenuto restituisce uno stato.
- Non esiste un successo parziale. Se il commit non riesce, nel repository non è cambiato nulla.
Argomenti correlati
- Guida: cartella e file – aprire un file nell'albero
- Come clonare un repository montato – più file in un solo commit, tramite un client git
- Riferimento tecnico: livello di visibilità – quale livello concede il permesso di scrittura
- Diagnostica – sintomo, causa e rimedio