Last updated 23 January 2012.
What are dependencies?
Some modules require one or more additional modules in order to run. Views requires Ctools, Pathauto requires Token, Media requires Ctools, File entity, and Views. This is called dependency.
When a module requires a specific version of another module, it's called a version dependency. For example, at this time Media module doesn't just require the File entity module, it specifically requires the 7.x-2.x branch. If you don't have a File entity from the 7.x-2.x branch, you can't enable Media.
Why is there a problem using Git?
If you've downloaded a tar.gz or zip file from Drupal.org, the dependency information is clear. The packaging script wrote the specific version to the .info file, and Drupal uses that data.
When you check out a module from Git, however, you've bypassed the packaging script and the information is missing. If you checked out File entity using Git, Drupal cannot determine the version of File entity, so when you try to enable Media you fail.
How can Drupal get version dependency information from Git?
To solve this, Drupal must get the version information directly from Git. To do so, download and enable: