Concurrent git clone y fetch

Tengo 10 processs ejecutándose en la misma máquina que en cualquier momento puede ejecutar un git clone y un git fetch en el mismo repository git.

Obviamente, este es un problema ya que git clone generará un " directory already exist y "git fetch" planteará algo expected ref to be abcdfg but was hijklm en requestes posteriores. A menudo estas requestes se realizarán al mismo time, por lo que si la carpeta existe, no funcionará, ya que git puede estar en el medio de crearla.

Mi pregunta es: ¿hay alguna manera de verificar si Git está clonando o buscando algo actualmente? Luego puedo codificar mi progtwig para esperar a que termine la búsqueda existente hasta que continúe.

Estoy ejecutando Ubuntu 12 LTS, si eso ayuda, y mis processs están codificados en Ruby, aunque eso no importa mucho.

Déjame saber lo que piensas.

Para los repositorys existentes (por lo que durante la fetch ), cuando Git está en funcionamiento, escribe un file en .git/index.lock . Sus processs deben esperar a que se limpie ese file antes de ejecutar un nuevo command.