On Thu, Jan 16, 2014 at 11:00:43AM +0100, Zunbeltz Izaola wrote:
> libbe.util.subproc.CommandError: Command failed (128):
>    fatal: This operation must be run in a work tree
> 
> 
> while executing
>    ['git', 'add', u'.be']

BE tries to find the repository root to create the .be directory.  For
libbe.storage.vcs.ExecGit (your storage backend), that's:

    def _vcs_root(self, path):
        """Find the root of the deepest repository containing path."""
        # Assume that nothing funny is going on; in particular, that we aren't  
        # dealing with a bare repo.                                             
        if os.path.isdir(path) != True:
            path = os.path.dirname(path)
        status,output,error = self._u_invoke_client('rev-parse', '--git-dir',
                                                    cwd=path)
        gitdir = os.path.join(path, output.rstrip('\n'))
        dirname = os.path.abspath(os.path.dirname(gitdir))
        return dirname

That's not going to work inside a submodule, because their Git
directories are stored under the superproject's .git/modules/, and not
in their working tree.  If we assert that .git exists at some level in
the in the git-dir path, we can nibble off the end of the path until
we find it, and use that as the VCS root.  This would mean that
submodules would use the superproject's .be directory, regardless of
whether or not they had their own .be directory.

If you want to set the BE repository directly, and override these
heuristics, you can use the --repo option:

  ~/Proyectos/LEBT-HTaccess/code/src$ be --repo ~/Proyectos/LEBT-HTaccess init

Cheers,
Trevor

-- 
This email may be signed or encrypted with GnuPG (http://www.gnupg.org).
For more information, see http://en.wikipedia.org/wiki/Pretty_Good_Privacy

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Be-devel mailing list
Be-devel@bugseverywhere.org
http://void.printf.net/cgi-bin/mailman/listinfo/be-devel

Reply via email to