2011-08-18 21 views
16

Ho un repository git locale che ho impostato con un progetto in Xcode 4. Il repository si presenta bene nell'Organizer e posso vedere cronologie dei commit e Icone di controllo del codice sorgente nel Navigatore di file. Anche i commit funzionano bene. Tuttavia, quando uso l'editor delle versioni, viene visualizzato l'errore "Questo file non esiste alla revisione richiesta" ogni volta che provo a vedere qualsiasi revisione precedente. Non riesco a trovare alcuna informazione su questo errore e non ho idea di come risolvere. git log mostra quattro commit recenti (so che ce ne sono altri, ma non so se questa è una restrizione del comando o se qualcosa sta scomparendo). Qualche idea?Xcode 4 Git- "Questo file non esiste alla revisione richiesta"

risposta

-1

Ancora nessuna risposta; Ho comunque dovuto apportare alcune modifiche importanti al progetto, così ho iniziato un nuovo progetto. Tutto bene.

+1

Vorrei davvero che fosse una risposta migliore per questo. Immagino che abbia qualcosa a che fare con la capacità di repo e Xcode di risolvere alcuni problemi di versione. –

0

Mi sono imbattuto lo stesso errore utilizzando Xcode 4.2 in un progetto relativamente nuovo in precedenza oggi.

Inizialmente ho risolto il problema clonando il repository in una directory di pari livello. In Terminal:

> cd /path/to/XCodeProject 
> mkdir ../Clone 
> cd ../Clone 
> git clone ../XCodeProject/.git . 

Tuttavia, quando ho rimosso il progetto originale e rinominato la nuova directory con lo stesso nome, il problema riapparve.

Alla fine, la soluzione era semplicemente quella di individuare i miei file .xcodeproj e .git e dare alla directory padre un nome diverso.

-1

Ho avuto lo stesso problema. Era perché la modalità editor è su "Mostra l'editor di versione". Assicurati che sia su "Mostra l'editor standard" o "Mostra l'editor dell'assistente". È nella parte superiore destra di Xcode, accanto a "Visualizza" e "Organizer".

+5

... A meno che non stia effettivamente cercando di utilizzare l'editor delle versioni. – FeifanZ

15

Mi sono imbattuto in questo stesso problema. Penso (nel mio caso) che fosse collegato al fatto che avevo spostato la directory del progetto al di fuori di xcode. Credo che xcode abbia memorizzato nella cache alcuni file di indice in ~/Library da qualche parte. Sembrano essersi aggrovigliati dalla mossa.

La correzione (per me) era aprire xcode, aprire il riquadro organizer-> progetti e trovare il progetto in questione. Elimina i dati derivati ​​(c'è un pulsante nel pannello in alto a destra per questo).

Dopo questo, tutto sembrava a posto.

+0

In Xcode 4.4 ho dovuto rimuovere il repository da Xcode, poiché era già stato rintracciato da un altro repository in cui l'ho spostato. Sull'organizzatore non vedo più "dati derivati", solo il "-" in basso a sinistra dei miei archivi Xcode tracce. –

+0

Questo lo ha fatto per me. Molte grazie! Questi dannati dati derivati ​​causano sempre guai. : P – Kalle

1

Sto indovinando che questo è uno di questi problemi che potrebbero essere causati da più problemi. Questo è mio e come l'ho risolto.

Il mio progetto aveva alcune modifiche al nome del file system in corso. Vale a dire, passando da tutte le maiuscole a quelle di Pascal. Questo è stato annullato a un certo punto durante il mio ciclo di codifica. Quando ho controllato, il file system è stato:

mydirectoryname

Tutti i file sotto mydirectoryname non sono stati gestiti da git in Xcode. Durante la visualizzazione sotto l'Editor delle versioni, ho finito con il messaggio di errore "Questo file non esiste alla versione richiesta".

Tuttavia, se ho selezionato uno dei file e cliccato sul Inspector File (disponibile nel pannello Utility), ho notato il percorso completo del file è stato indicato come:

MyRootPath/MyDirectoryName/TheCodeFile.h

ho chiuso Xcode, aperto il file .pbxproj in un editor, risolto il percorso e riaperto il progetto. L'integrazione Git funzionava ancora una volta.

-1

Stavo succedendo questo per un particolare file in un Progetto. Tutto il resto funzionava bene. Questo file non ha mai funzionato correttamente dal momento in cui l'ho aggiunto, dando sempre l'errore "il file non esiste alla versione richiesta" quando si esegue un'azione, incluso, in modo molto fastidioso, salvandolo! Ho provato a rimuoverlo dal repository e riaggiungerlo. Stesso. Ciò che alla fine ha funzionato è stato fare un "git add" e un "git commit" dalla riga di comando. Vai alla directory principale del repository (la directory che contiene la cartella .git), avvia "git add" (anche se sembra che dovrebbe già essere lì!) E poi "git commit". Questo lo ha risolto per me e il file ora è felice all'interno di Xcode.

0

Come noto, è a causa di un conflitto che Xcode 4.3 attualmente non gestisce correttamente. Ho anche avuto un problema simile con uno SD_Store mal sincronizzato. L'ho rimosso manualmente e sono rimasto bloccato in un caso simile.

poi ho dovuto risolvere manualmente il problema utilizzando la linea di comando:

  • aprire il terminale
  • cd al repository GIT locale
  • cd .git/
  • mv MERGE_HEAD MERGE_HEAD_OLD // o semplicemente cancellarlo

Se eri bloccato con pull, commit e push, tramite Xcode dovresti essere in grado di chiamarli ancora. Inoltre, poiché entrambe le parti dovrebbero essere sincronizzate correttamente, anche il tuo errore "Questo file non esiste alla revisione richiesta" sarà eliminato. Si prega di commentare se questo ha funzionato per voi.

0

Aveva lo stesso problema.
Risolto selezionando il progetto nella pagina "Progetti" di Organizer ed eliminando i dati "Dati derivati" e "Istantanee" premendo i pulsanti "Elimina ..." per questi campi.
Successivamente, è possibile creare ed esportare una nuova istantanea se necessario.

+0

Non ha funzionato. E ora non ho più l'istantanea. I dati derivati ​​erano grigi, quindi presumi che non ci sia nulla da eliminare. –

9

questo ha aiutato per me:

  1. Vai a XCode -> Organizer -> Repositories
  2. Rimuovere tutti i repository, con il nome scritto in rosso (cioè file non trovato)
  3. Toccare il "+ "pulsante in basso a sinistra ->" Aggiungi repository ... "
  4. Immettere le informazioni richieste: Percorso = file://....<full path, which contains the .git directory>. Assicurarsi di avere Type impostato su "Git", Xcode cambiato in "sovversione", ignorare il messaggio "Autenticazione richiesta"
  5. Fatto
+0

Avevo solo bisogno dei primi due passaggi, il repository corretto era già nella lista, proprio sotto quelli sbagliati. Grazie! – joerick

3

ho incontrato questo quando ho cambiato caso in un nome di classe. Git aveva una lettera minuscola dove volevo maiuscole. Ho provato molte delle cose sopra timide di ricostruire completamente il repository. Alla fine ho semplicemente rimosso la classe dal progetto, ho cambiato leggermente il nome e poi l'ho riaggiunta.

+0

Questa era la soluzione che alla fine ha funzionato per me. Problema originale avviato dal ridenominazione di imageViewController in ImageViewController. Solo il caso della prima lettera è diverso, ma è stato sufficiente a confondere le cose. Ho risolto il problema eliminandolo e copiandone uno chiamato IViewController e rinominando i riferimenti appropriati. Ho imparato la lezione su come rinominare le cose in Xcode (non farlo). –

-1

ho avuto questo problema - ho risolto da: eliminare il repository in organizzatore

prompt del terminale nel progetto dir

ls -A - Sheck per i file di pronti contro termine .git - non dovrebbero essere qualsiasi - ma se ci sono rm -R.GIT

l'installazione della nuova git repo

git init git add. git commit -m "rev iniziale"

poi quando riapro Xcode - progetto è sotto il controllo del codice sorgente git

+1

Quindi qual è il punto di usare git se si elimina solo il repository? –

1

Si è scoperto, nel mio caso, che questo problema aveva a che fare con il fatto che ho rinominato molti file nel mio repository da "CamelCase" a "minuscolo", inclusi il mio file di progetto e la cartella. Questo deve essere stato impropriamente rintracciato da qualche parte in qualche modo.

OS X utilizza un file system case-insensitive di default, mentre git è internamente tra maiuscole e minuscole, e credo che il problema aveva a che fare con questo.

Questi sono i passi che ho usato per risolvere questo problema. Se ritieni che il tuo problema potrebbe essere dovuto alla modifica del caso dei nomi di file, questo potrebbe aiutarti anche tu.

  1. andare alla radice del repository, e rimuovere tutto ciò da esso tranne che per la cartella .git utilizzando il "ls -la" (per vedere tutti i file nascosti troppo) e "rm"/"rm-rf "comandi.
  2. fare un "git resettare --hard" per ottenere tutti i file indietro. Ora puoi vedere che il caso dei tuoi nomi di file è cambiato. Nel mio caso, nella radice della mia copia di lavoro, "myapp.xcodeproj" e "myapp" (cartella contenente tutti i file di codice) erano cambiati in "MyApp.xcodeproj" e "MyApp" (cartella). Pensavo di averlo cambiato in minuscolo, ma a quanto pare, questo non era stato tracciato correttamente da Git.
  3. Ora, rinominare i file in qualcosa di estraneo. Ad esempio, ho rinominato "MyApp.xcodeproj" in "foo.xcodeproj" e "MyApp" in "foo".
  4. Quindi fare "git add --all"
  5. Ora, rinomina i tuoi file come desideri. Ho ribattezzato "foo.xcodeproj" in "myapp.xcodeproj" e "foo" in "myapp", che è come volevo che iniziasse (e cosa pensavo di aver già fatto).
  6. Fare un'altra "git add --all".
  7. Commit.

Ora la tua vita dovrebbe essere migliore e Xcode dovrebbe comportarsi bene, perché git ora sta vedendo esattamente gli stessi file (con lo stesso identico caso) del progetto Xcode.

+0

Puoi annotare i tuoi passaggi? Qual è lo scopo di ognuno. Cosa fa resettare git --hard do? –

1

Il mio problema e la soluzione era semplice:

  • avevo creato una cartella, MyProj
  • ho creato un MyProj progetto Xcode all'interno di questa cartella
  • Questo mi ha dato una struttura che sembrava MyProj/MyProj/MyProj/
  • non mi piaceva quel livello della cartella in più, così ho spostato il MyProj interna sotto MyProj
  • Xcode monitoraggio repository preso preso una cantonata up

La soluzione:

  • Aprire l'Organizzatore a Repositories, ed eliminare la maiuscola repository "MyProj", che è stato evidenziato in rosso. Xcode aveva rilevato la nuova posizione del repository su "myProj" e riprendeva le cose normalmente.
0

Questo è un thread antico, ma dal momento che non è mai stata trovata una risposta adeguata, inserirò i miei 2 centesimi.

Una causa di questo errore può provenire da file non tracciati, in particolare da un sottomodulo o da file che non sono presenti nel ramo corrente ma in un precedente.

Ad esempio, quando si passa a un ramo con un sottomodulo e si aggiorna tale sottomodulo, questi file verranno sincronizzati nel repository. Quando in seguito si passa a un ramo che non ha tale sottomodulo, non lo aggiungerà o cancellerà automaticamente, ma git si renderà conto che qualcosa non viene tracciato nel ramo. XCode lo rileva anche ogni volta che si passa a una delle modalità di Editor versione: log, colpa o confronto.

Se questo è il caso, una richiesta sullo stato git produrrà i file non monitorate:

On branch master 
    Your branch is up-to-date with 'origin/master'. 

    Untracked files: 
    (use "git add <file>..." to include in what will be committed) 

    yourSubmodule/ 

    nothing added to commit but untracked files present (use "git add" to track) 

Per risolvere questo problema, si può semplicemente eliminare i file non monitorate con rm, dal momento che tali file non appartengono alla questo ramo e può essere sincronizzato dal ramo che effettivamente punta al sottomodulo. Nota questo è il caso del sottomodulo, ma se hai nuovi file dovresti invece aggiungerli al repository, o in alternativa aggiungerli alla lista di ignora. Dopo aver sistemato il problema, git status deve essere pulita:

On branch master 
    Your branch is up-to-date with 'origin/master'. 

    nothing to commit, working directory clean 

Leggi su submodules e issues with their usage.

Cheers!

+0

Ho usato i Submodule come esempio, ma XCode si lamenterà di qualsiasi file non tracciato (anche i nuovi file potrebbero causare questo problema). – rsam

0

Ho ricevuto lo stesso messaggio dopo aver creato e rinominato un nuovo file. Questo messaggio è apparso quando ho selezionato il file nella finestra di commit Git. L'eliminazione e la riaggiunta del file hanno risolto il problema.

Problemi correlati