Introduction
The Iguana local repository can be corrupted by manually (or accidentally) altering the repository files.
When the Iguana repository is corrupted you will receive errors like revspec not found or refs/heads/master not found. This article covers causes and solutions for repository corruption.
Note: If these errors occurred immediately after a migration — then read the Fix local Repository corruption after upgrading/migrating Iguana FAQ.
Issue [top]
One of these errors revspec not found, refs/heads/master not found or Project file with guid <nnnn> does not exist occurs.
Cause [top]
In general Iguana repository corruption is caused by manually (or accidentally) altering the local repository files.
Specific things than can cause corruption include:
- Copying files directly into your IguanaConfigurationRepo.
Copying files directly into the local repository does not work — it will corrupt the repository. Specifically do change anything in this directory <working directory>/IguanaConfigurationRepo.
- Editing configuration files manually on disk.
Editing configuration files (like IguanaConfiguration.xml) manually on disk is generally not a good idea (unless support asks you to make a change in response to a help call). This is not a hard and fast rule as there are some occasions where editing configuration files is safe provided you follow the instructions in the appropriate Help Center article.
Note: There are some occasions where editing configuration files is safe, these are the most common: Changing the web Server Port in the configuration XML file (IguanaConfiguration.xml), or changing the Iguana Logs directory (IguanaConfiguration.xml), setting the working/config directory path in the Iguana Service HDF file (iguana_service.hdf), and if you are using multiple Iguana instances (servers) on one machine you will need to change the service name and service display name (iguana_service.hdf),.
- Using the Git command line to modify the local repository.
Even if you are very familiar/expert with Git this please so not do this. We made some very specific design choices with how Iguana uses/structures the local repository. And unless you know exactly how this works it is very easy to make a mistake.
- Manually deleting channel files (whether that is translator files or Channel configurations.)
This issue with this is that the repository will not be updated to correspond to the manual changes.
Solution [top]
- Manual repository synchronization:
This will attempt to sync the IguanaMainRepo with the IguanaConfigurationRepo and any user repositories in the edit folder.
- Open a browser and go to the URL “http://<host>:<port>/debug”:
- where <host> and <port> are your Iguana hostname and port number (as you would see in the Dashboard).
- For example: “localhost:6543/debug”.
- Click the Sync Repositories button at the bottom of the page.
- If this does not work proceed to step (2)
- Open a browser and go to the URL “http://<host>:<port>/debug”:
- Restart Iguana to recreate the working repository (IguanaConfigurationRepo):
Iguana will re-clone the IguanaConfigurationRepo on startup, and will re-clone the edit folders when you log into Iguana. Any unsaved translator work will be saved in the backed up edit/<USERNAME> folder, which you can find and reclaim.
- TIP: Optionally commit all of your Translator code changes to avoid losing of unsaved code.
Note: You can also recover unsaved changes from the edit/<USERNAME> folder. - Backup your <working directory>/edit folder.
- Backup your <working directory>/IguanaConfigurationRepo folder.
- Restart the Iguana service.
- TIP: Optionally commit all of your Translator code changes to avoid losing of unsaved code.
- If you are still receiving the error, please contact us at support@interfaceware.com.
Note: If these errors occurred immediately after a migration — then read the Fix local Repository corruption after upgrading/migrating Iguana FAQ.
Prevention [top]
In general if you follow our practices on how to migrate or upgrade Iguana — then these issues should not occur.
More specifically do not do any of the things described in the Cause section above.