Git cambio codice temporaneo

0

Il mio programma interagisce con un'altra applicazione tramite una comunicazione socket. La versione pubblica corrente di questa applicazione non supporta un comando specifico mentre il trunk più recente. Per essere compatibile con l'attuale versione pubblica, ho solo bisogno di riscrivere alcune righe di codice. Dal punto in poi, lo sviluppo deve continuare con questo codice modificato , ma in futuro il codice originale dovrebbe essere usato di nuovo.

È possibile apportare una modifica parziale a un file temporaneo con Git? Potrei creare un ramo, per esempio, e continuare a sviluppare in questo ramo. Tuttavia, quando unisco il ramo al master, voglio che il codice modificato menzionato sopra venga ripristinato al suo codice originale .

Nota : Sono ben consapevole di poter distinguere tra le versioni del software, tuttavia le modifiche hanno anche effetto sui file di risorse della GUI che non posso influenzare dal codice diverso dal semplice caricamento di una risorsa diversa file.

    
posta Niklas Rosenstein 25.09.2013 - 12:10
fonte

2 risposte

1

Non risolverei questo problema con git dato che alla fine vuoi che il master sia dispiegabile e funzionante. Quindi è possibile, ma richiederà tempo e impegno.

Se riesci a individuare quale versione dell'altra applicazione stai parlando: basta creare un metodo che rilevi questo e selezioni la giusta classe / metodo / qualsiasi cosa tu usi. Quindi duplica la parte che cambia e chiama quella giusta.

Questo rende facilmente testabile, basta creare un test per entrambi e sosterrai sempre entrambe le versioni.

Il problema qui sorge da un problema che è più probabile nella tua applicazione. Fondamentalmente il socket è una sorta di datasource. In questo dovresti gestire questo tipo di problemi. Ad esempio potresti avere un'origine dati per versione dell'altra applicazione o gestirla in classi separate.

    
risposta data 25.09.2013 - 16:37
fonte
1

Sono stato in una situazione del genere per la maggior parte del tempo che ho usato git. Cioè, ho bisogno di alcune modifiche locali, ad es. impostare alcuni percorsi nei file di configurazione, che sono altrimenti impegnati nel controllo della versione. Ecco il mio flusso di lavoro.

Faccio un commit o un paio di commit con le modifiche "Local Configuration", "temp", "in progress" ecc. Quindi, quando ho finito una feature, I fetch , poi rebase , mettendo

  • il nuovo telecomando si impegna in basso (questo avviene di default in un rebase)
  • il mio locale si impegna su di loro
  • il mio commit temporaneo in alto.

Quindi posso fare git push HEAD~2 , considerando che ho due commit temporanei. O meglio ancora, usa l'ultimo SHA del commit significativo.

    
risposta data 25.09.2013 - 14:46
fonte

Leggi altre domande sui tag