Hi,

On Sat, Apr 25, 2015 at 11:36:25PM +0200, Simon Richter wrote:
> I'm trying to set up a continuous integration build for Boost, which
> uses massive amounts of submodules, and keep running into problems when
> running "git clean" in the toplevel project.
> 
> When I switch to a version where a submodule has been removed (e.g. an
> earlier version), "git clean -dx" will not remove the submodule's
> directory, because it has its own .git directory. Using a single -f
> flag, the process fails (because directories containing .git directories
> are no longer skipped), and using -ff removes all submodules (which is
> overkill).
> 
> Is there a good way to clean a project, leaving valid submodules in
> place (these are then switched to the new tip and cleaned in separate
> commands) while removing submodules that are no longer referenced?

Unfortunately there is no really nice way for that yet. Safely removing
submodule ist still under development.

Here is a snippet that I used on a CI server for this purpose:

   git status --porcelain | grep "^?? " | sed -e 's/^?? //' | \
   while read i; do
        rm -rf "$i"
   done

It does a little more, since it unconditionally removes all untracked files
that are not ignored.

Cheers Heiko
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to