git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Heiko Voigt <hvoigt@hvoigt.net>
To: Simon Richter <Simon.Richter@hogyros.de>
Cc: git@vger.kernel.org
Subject: Re: Cleaning projects with submodules
Date: Mon, 27 Apr 2015 14:47:29 +0200	[thread overview]
Message-ID: <20150427124729.GA5399@sandbox-ub1410> (raw)
In-Reply-To: <553C08D9.9000907@hogyros.de>

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

      reply	other threads:[~2015-04-27 12:54 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-25 21:36 Cleaning projects with submodules Simon Richter
2015-04-27 12:47 ` Heiko Voigt [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150427124729.GA5399@sandbox-ub1410 \
    --to=hvoigt@hvoigt.net \
    --cc=Simon.Richter@hogyros.de \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).