2010-02-15 19 views
6

Sono in procinto di integrare il sistema di controllo versione GIT in 3ds max per controllare il controllo delle versioni .max dei file.Backup stile Git di file binari

Ho testato git con file max per diverse settimane e ho scoperto che soddisfa le mie esigenze, ma, in ogni caso, git è un po 'complicato per questo tipo di attività. Quello che sto cercando è il programma che funziona proprio come (beh, quasi) git, ma:

  1. è naturalmente nato programma di Windows - git fallito più volte sulla mia rete condivisa cartelle e distrutto i miei file binari max . Questo è il problema principale e non so come risolverlo.
  2. non (nemmeno tenta di) elaborare il contenuto del file. Penso che acceleri il flusso di lavoro.
  3. ha un'interfaccia vicino a TortoiseGIT.

Che questo software deve avere è:

  1. commettere ed effettuare il login comandi
  2. ramificazione supporto
  3. essere distribuita di server e non orientato come Perforce.

Ho testato Mercurial, ma è molto lento su file binari di grandi dimensioni. Se qualcuno sa come accelerarlo (disabilitando la gestione dei contenuti, suppongo) e avere TortoiseHg perfettamente funzionante, qualsiasi informazione sarebbe molto apprezzata.

Grazie!

risposta

0

Per quanto riguarda git distruggere i file binari max,
hai impostato core.autocrlf=false?

GIT sarebbe un controllo sorgente piuttosto inutile se distruggesse le fonti.
This question sul nostro SO personale approfondisce la gestione delle differenze relative a CR & LF in GIT.

+0

No, non lo sapevo. L'errore si è verificato due o tre volte, ogni volta su una cartella condivisa e non riuscivo a riprodurlo. Lo staff della nostra compagnia è principalmente di artisti, quindi dovrei essere totalmente fiducioso in un software per incoraggiare le persone a usarlo. Se questo tipo di errore si verifica con il file di qualcuno, sarebbe un disastro totale. Per essere vero - ho paura di cazzeggiare un po '. Ecco perché sto cercando un'alternativa. – sergo

+0

Lascerò la risposta perché il tuo commento potrebbe essere di valore per gli altri. Per tutto il resto, VonC è in una posizione migliore per aiutarti con ciò di cui hai bisogno (o non ne hai bisogno). –

10

file binari hanno sorta di un rapporto ambivalente con VCS perché:

  • essi non si fondono (in modo che il tutto "ramificazione sostegno" non è poi così interessante)
  • non lo fanno diff molto bene (che significa la memorizzazione della loro storia non è molto compatto)
  • in genere possono essere generati
  • oppure possono essere prelevati da altri tipi di repository

I file binari fanno parte di Git limits poiché tendono a rallentare tutto il flusso di lavoro e fanno il numero not scale in size (il repository diventa rapidamente troppo grande per gestire/backup in modo efficiente).

Quindi la domanda è: è possibile memorizzare quei file è un altro repository rispetto a un VCS?
Un repository Maven forse (gestito da un gestore di repository come Nexus, non esattamente distribuito, ma creato per fare riferimento a una versione precisa di qualsiasi tipo di insieme di file).


Jakub Narębski (attuale Git contributor) giustamente ad un progetto forcella Git in grado di gestire più efficiente file di grandi dimensioni.

git-bigfiles alt text http://caca.zoy.org/raw-attachment/wiki/git-bigfiles/git-bigfiles.png (ok, il logo del progetto è impressionante;))

La domanda rimane: è un VCS lo strumento giusto per la gestione di tali oggetti di grandi dimensioni?
Poiché nella mia esperienza, , la domanda "ripulire la cronologia" verrà richiesta un giorno o l'altro, a causa di una quantità sempre maggiore di spazio su disco utilizzato.
E VCS sono fondamentalmente non fatti per "ripulire" la loro storia.
Git non può farlo senza modificare il suo codice SHA1, rendendo problematica qualsiasi pubblicazione futura ad altri repository pubblici.

+0

La ramificazione è molto utile con i file binari. Non per la fusione successiva, ma per dividere le versioni di un progetto e scambiarle tra loro. Grazie per aver indicato Marven/Nexus. Daremo un'occhiata ai documenti Nexus. – sergo

+2

Dai un'occhiata al progetto ** git-bigfiles **, se vuoi il controllo della versione per file binari di grandi dimensioni. –

+0

@Jakub: Grazie. Ho aggiornato la mia risposta per includere tale riferimento, ma ho anche completato la mia domanda sulla pertinenza dell'utilizzo di un VCS (distribuito o meno) per la gestione di file di grandi dimensioni. – VonC

2

Quello che non capisco è perché si desidera utilizzare un DVCS senza poterlo diffare e quindi trarne vantaggio, come dice il primo commento.

Vorrei consigli due possibili direzioni:

  • dare un'occhiata a Archiva e/o edera (strumenti Java), che sono stati progettati per gestire la distribuzione dei file binari, come ad esempio i file jar , per gli sviluppatori, ma potrebbe essere troppo java-centrico (o anche centric di sviluppo) per il vostro caso d'uso, o

  • tenta di utilizzare rync e le sue possibilità di backup (rsync può salvare il maggior numero cinque rsioni come vuoi invece di sostituire la copia precedente con quella nuova). Sembra molto adatto alle tue esigenze: funziona bene su Windows, gestisce binari molto bene, così come file di testo, è molto efficiente in termini di larghezza di banda (può comprimere) e gestisce il backup con diverse versioni. L'unica cosa che manca per te sarebbe una GUI, idealmente integrata con winexplorer. Forse ce ne sono alcuni, non lo so ..

Spero che possa essere d'aiuto.

Cheers,
Christophe.

= I backup sono per wimps. I veri uomini caricano i loro dati su un sito FTP e li rispecchiano tutti. --Linus Torvalds =

+0

Ciò che rende la scelta DVCS migliore è che l'utente non è costretto a utilizzare una posizione server severa, può liberamente memorizzare tutti i file sul computer locale con la cartella condivisa. Un altro utente può accedere a tali cartelle condivise, clonare il repository e continuare a lavorare sul progetto. Il nostro approccio non prevede la fusione, solo la ramificazione (biforcazione). Grazie per i suggerimenti. Dovrò guardare rsync, potrebbe essere possibile copiarlo per fare il lavoro giusto. – sergo

+0

Il vantaggio principale di (D) VCS altri tutti gli altri strumenti è il comando Log. Con l'aiuto di questo comando, l'utente ha sempre una cronologia del progetto e questo è inestimabile: avere una bella storia invece di dozzine di file con nomi strani. – sergo

+0

Capisco. In effetti un DVCS sarebbe in realtà molto più potente, è vero. Ma ci sono anche problemi come il sovraccarico, la gestione di file di grandi dimensioni (non è stato fatto per questo), la pulizia della cronologia come suggerito (di nuovo non è stato fatto per quello). Il problema è che i file system non sono abbastanza potenti per te, ma un DVCS sarebbe un po 'troppo potente (+ richiede lavoro): ciò di cui hai bisogno è una via di mezzo, uno strumento che può facilmente fare copie locali di file, con i registri e consente di sceglierli ed eliminarli a un certo punto. Forse un nuovo strumento che utilizza git a basso livello di funzionalità simili a fs? Non lo so .. –

2

Si consiglia di indagare su Veracity che was designed with this requirement in mind. Il programma di installazione di Windows include un client simile a Tortoise. (Non so se il programma di installazione di Mac ha un'interfaccia simile so che il Linux installer currently doesn't have such an interface..)

link pertinenti:

1

Hai pensato di usare Autodesk Vault? Funziona bene con 3dsmax (lo abbiamo usato per molti anni, sia per Inventor che per 3dsmax). http://www.autodesk.com/products/autodesk-vault-family/features

+0

Il deposito è ancora libero? Penso che devi comprarlo ora. Inoltre l'ho trovato offensivo da usare a meno che tu non sia in costruzione. –

+0

E Vault è centralizzato come perforce (l'ultima volta che ho controllato) –

+0

È possibile replicare i dati del server tra i server del vault, lo facciamo tra server situati in diverse località in tutto il mondo, ma la versione gratuita non supporta questo fuori dalla scatola. –