Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [GIT] Tracciare file nati successivamente SOLO in produzione

    Ciao a tutti,
    sto cercando di sviluppare un sito con controllo di versione gestito da GIT. Spiego meglio la situazione:


    - PC Client Locale che ha clonato il repository

    - Repository GIT inizialmente vuoto (sul mio server)
    + post-receive => /var/www/html (hook che aggiorna la mia cartella www di produzione)

    - Cartella di produzione che dovrebbe contenere il sito


    In sostanza, inizialmente ho clonato il repository (vuoto) in locale. Ora, se in locale creo un file ed eseguo la commit e la push, in maniera corretta si connette al repository e l'hook mi fa trovare il nuovo file nella cartella di produzione.


    La mia domanda è: se ho degli script in produzione che creano file (ad esempio immagini uploadate, json generati ecc ecc..), come faccio a farli rilevare dal repository?
    In sostanza sono file non tracciati, ma che il repository deve automaticamente rilevare in modo che quando faccio la pull dal mio client in locale me li rileva e me li scarica.

    Qualche aiuto?

    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Quote Originariamente inviata da jfrusciantello Visualizza il messaggio
    In sostanza sono file non tracciati, ma che il repository deve automaticamente rilevare in modo che quando faccio la pull dal mio client in locale me li rileva e me li scarica.
    Devo dire che lo scenario non mi è per niente chiaro.

    Il repository è un contenitore di file, non "rileva" nulla di per sé, e qualunque cosa venga scaricata, deve essere tracciata, altrimenti non esiste per il repository.

    Spiega meglio magari facendo un esempio pratico.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Quote Originariamente inviata da alka Visualizza il messaggio
    Devo dire che lo scenario non mi è per niente chiaro.

    Il repository è un contenitore di file, non "rileva" nulla di per sé, e qualunque cosa venga scaricata, deve essere tracciata, altrimenti non esiste per il repository.

    Spiega meglio magari facendo un esempio pratico.
    Mi spiego meglio. Ho un sito in produzione (sul server) e la mia copia in locale.


    Eseguo una modifica da locale e con la push la mando al mio repository che poi copierà i file in produzione.
    Essendo un sito web, possono essere uploadate, ad esempio, delle immagini in produzione (quindi sul server).
    Come posso io, automaticamente, scaricare con la pull quei file non tracciati? (Quindi mantenendomi allineato)

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,301
    Quote Originariamente inviata da jfrusciantello Visualizza il messaggio
    Essendo un sito web, possono essere uploadate, ad esempio, delle immagini in produzione (quindi sul server).
    Come posso io, automaticamente, scaricare con la pull quei file non tracciati? (Quindi mantenendomi allineato)
    Se vuoi scaricare quelle immagini con un "pull", ossia ottenerle nel repository, dette immagini devono essere salvate in un percorso che appartiene appunto al repository clonato per la produzione, inserite in un commit e caricate all'interno del server, manualmente o scatenando lo staging, il commit e il push in automatico.

    In questo modo, la "storia" dei commit si integra con un nuovo snapshot che comprende anche le immagini caricate dal server, che si possono scaricare via "pull" come se fossero state caricate da un altro sviluppatore o terza persona.

    Mi sembra comunque tutto molto complicato come approccio: non è meglio a questo punto prevedere che tali immagini finiscano su uno storage differente da una cartella, ad esempio un BLOB sul Cloud, e che facendo il "pull" si scarichino solo i sorgenti, decidendo in seguito se "puntare" ai servizi usati dalla produzione oppure a quelli di collaudo/beta o sviluppo/alfa?

    Una ulteriore alternativa sarebbe evitare comunque di inserire le immagini nel repository ma dotarsi di script (es. scritti in Python o qualsivoglia altro linguaggio) che possano essere lanciati in ogni momento per scaricare separatamente dagli ambienti le risorse eventualmente caricate durante l'uso dell'applicazione.

    Insomma, le soluzioni sono molteplici, con diversi pro e contro...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Quote Originariamente inviata da alka Visualizza il messaggio
    Se vuoi scaricare quelle immagini con un "pull", ossia ottenerle nel repository, dette immagini devono essere salvate in un percorso che appartiene appunto al repository clonato per la produzione, inserite in un commit e caricate all'interno del server, manualmente o scatenando lo staging, il commit e il push in automatico.

    In questo modo, la "storia" dei commit si integra con un nuovo snapshot che comprende anche le immagini caricate dal server, che si possono scaricare via "pull" come se fossero state caricate da un altro sviluppatore o terza persona.

    Mi sembra comunque tutto molto complicato come approccio: non è meglio a questo punto prevedere che tali immagini finiscano su uno storage differente da una cartella, ad esempio un BLOB sul Cloud, e che facendo il "pull" si scarichino solo i sorgenti, decidendo in seguito se "puntare" ai servizi usati dalla produzione oppure a quelli di collaudo/beta o sviluppo/alfa?

    Una ulteriore alternativa sarebbe evitare comunque di inserire le immagini nel repository ma dotarsi di script (es. scritti in Python o qualsivoglia altro linguaggio) che possano essere lanciati in ogni momento per scaricare separatamente dagli ambienti le risorse eventualmente caricate durante l'uso dell'applicazione.

    Insomma, le soluzioni sono molteplici, con diversi pro e contro...

    Ok, si effettivamente quello di lavorare solo sui sorgenti è l'approccio ideale, solo che in alcuni casi si ha bisogno di dati effettivi sui quali lavorare per implementare determinate funzionalità. E' ovvio che potrei allineare il tutto manualmente o con degli script automatizzati.

    Pensavo ci fosse qualche trucchetto in git per farlo.

    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.