<div dir="ltr">stale git submodules show up on a status. What I've found helpful is to add a bit in my prompt that tells me if the current git repository has a non "up to date" status (And the current branch). If you're running Zsh this is a good place to start for that:<br>

<br><div>git_prompt_info() {</div><div>  ref=$(git symbolic-ref HEAD 2> /dev/null)</div><div>  if [[ -n $ref ]]; then</div><div>    echo -n "[%F{red}${ref#refs/heads/}%f"</div><div>    st=$(git status -s 2> /dev/null)</div>

<div>    if [[ -n $st ]]; then</div><div>      echo -n "%f*%f"</div><div>    fi</div><div>    echo -n "]"</div><div>  fi</div><div>}<br>export PS1='$(git_prompt_info)[%F{green}%m%F{white}:%F{blue}%2c%f] '<br>

<br><br>Or on Bash:<br><br><br>function git_prompt_info() {<br>  ref=$(git symbolic-ref HEAD 2> /dev/null | cut -d'/' -f3)<br>  if [[ -n $ref ]]; then<br>    # Zsh prompt this was based on<br>    # echo "[%{$fg_bold[green]%}${ref#refs/heads/}%{$reset_color%}]"<br>
    echo "[$(tput setaf 2)$ref$(tput sgr0)]"<br>  fi<br>}</div><div>export PS1="\$(git_prompt_info)$PS1"</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 17, 2014 at 9:25 PM, Greg Hendershott <span dir="ltr"><<a href="mailto:greghendershott@gmail.com" target="_blank">greghendershott@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">For whoever else might find this useful building on OS X.<br>
<br>
Building HEAD today I got this new error:<br>
<br>
raco setup: --- creating launchers ---<br>
raco setup: launcher: <console-bin>/raco<br>
raco setup: --- installing man pages ---<br>
raco setup: --- installing collections ---<br>
raco setup: --- post-installing collections ---<br>
raco setup: --- checking package dependencies ---<br>
make install-common-last<br>
make fix-paths<br>
if [ "" != "" ]; then \<br>
          racket/racketcgc -G /Users/greg/src/plt/racket/build/config -u \<br>
            "../../collects/setup/unixstyle-install.rkt" \<br>
            make-install-destdir-fix "../.." \<br>
            "/Users/greg/src/plt/racket/racket/bin"<br>
"/Users/greg/src/plt/racket/racket/collects"<br>
"/Users/greg/src/plt/racket/racket/doc"<br>
"/Users/greg/src/plt/racket/racket/lib"<br>
"/Users/greg/src/plt/racket/racket/include"<br>
"/Users/greg/src/plt/racket/racket/lib"<br>
"/Users/greg/src/plt/racket/racket/share"<br>
"/Users/greg/src/plt/racket/racket/etc"<br>
"/Users/greg/src/plt/racket/racket/share/applications"<br>
"/Users/greg/src/plt/racket/racket/man" "yes"; \<br>
        fi<br>
make preserve-raco-pkg-default-scope<br>
:<br>
cp "../COPYING-libscheme.txt" "../COPYING_LESSER.txt" "../COPYING.txt"<br>
"/Users/greg/src/plt/racket/racket/share"/<br>
if racket/bin/racket -G build/config -I racket/base -e '(case<br>
(system-type) [(macosx) (exit 0)] [else (exit 1)])' ; then make<br>
native-from-git ; fi<br>
if [ ! -d native-pkgs/racket-win32-i386 ]; then make complain-no-submodule ; fi<br>
make pkg-links PKGS="main-distribution plt-services" LINK_MODE="--save"<br>
racket/bin/racket -U -G build/config racket/src/link-all.rkt ++dir<br>
pkgs ++dir native-pkgs --save main-distribution plt-services<br>
racket-lib<br>
Linking packages:<br>
  plt-services<br>
  racket-lib<br>
  main-distribution<br>
Recording packages choice in racket/etc/link-pkgs.rktd<br>
link-all: requested package not available: "draw-x86_64-macosx-2"<br>
  context...:<br>
   /Users/greg/src/plt/racket/racket/src/link-all.rkt:150:6: for-loop<br>
   /Users/greg/src/plt/racket/racket/src/link-all.rkt:148:2: loop<br>
   /Users/greg/src/plt/racket/racket/src/link-all.rkt: [running body]<br>
make[2]: *** [pkg-links] Error 1<br>
make[1]: *** [plain-in-place] Error 2<br>
make: *** [in-place] Error 2<br>
<br>
<br>
Although this is unlike the previous symptoms of stale submodules,<br>
"draw-x86_64-macosx-2" sounds like something that might be related to<br>
native-pkgs. So on a hunch I tried this:<br>
<br>
$ git submodule update<br>
remote: Counting objects: 214, done.<br>
remote: Compressing objects: 100% (157/157), done.<br>
remote: Total 214 (delta 59), reused 183 (delta 44)<br>
Receiving objects: 100% (214/214), 19.84 MiB | 54 KiB/s, done.<br>
Resolving deltas: 100% (59/59), done.<br>
>From <a href="https://github.com/plt/libs" target="_blank">https://github.com/plt/libs</a><br>
   b698e73..3d8856e  master     -> origin/master<br>
Submodule path 'native-pkgs': checked out<br>
'3d8856eb987af16ab27cc99d4d24d5f9e7efc33b'<br>
<br>
<br>
Although it was an unusually slow/big fetch, it succeeded.<br>
<br>
And now the build now. (Well as I type this, my laptop fans are<br>
blazing away, as it is still running the raco setup stage. But it<br>
proceeded OK past the point it was failing before.)<br>
<br>
Maybe this is obvious to everyone else, but I wanted to mention it in<br>
case it helped anyone else building on OS X.<br>
<br>
On Tue, Dec 17, 2013 at 4:48 PM, Greg Hendershott<br>
<<a href="mailto:greghendershott@gmail.com">greghendershott@gmail.com</a>> wrote:<br>
> To answer my own question, back in July Matthew had posted here:<br>
><br>
> On Sat, Jul 27, 2013 at 9:10 AM, Matthew Flatt <<a href="mailto:mflatt@cs.utah.edu">mflatt@cs.utah.edu</a>> wrote:<br>
>> Nothing has been split out of the current git repository, but there is<br>
>> now a "native-pkgs" git submodule for the native-library packages.<br>
>><br>
>> If you build on Mac OS X or Windows or if you run a snapshot build,<br>
>> then you'll need to use<br>
>><br>
>>   git pull<br>
>>   git submodule init<br>
>>   git submodule update<br>
>><br>
>> once on each repository checkout from now on, and<br>
>><br>
>>   git pull<br>
>>   git submodule update<br>
>><br>
>> for updates after the first checkout.<br>
>><br>
>> If you just `git pull' without the submodule commands, then you'll have<br>
>> an empty "native-pkgs" directory. That's fine if you're building on,<br>
>> say, Linux. If you're on Mac OS X or Windows, then the makefile should<br>
>> give you a good error message and suggest using `git submodule init'<br>
>> and `git submodule update'.<br>
>><br>
>> If you use `git submodule update' today and forget to use it in the<br>
>> future, probably things will be fine for a long time, because<br>
>> "native-pkgs" doesn't change often. If "native-pkgs" does change and<br>
>> you forget `git submodule update', then (as I understand things) `git<br>
>> status' will tell you that there's a mismatch. The mismatch report<br>
>> might take a form that's not entirely clear, but it should be enough to<br>
>> remind you to run `git submodule update'.<br>
><br>
> It turned out that it wasn't enough to remind _me_. :)  Running `git<br>
> submodule update` resolved this for me.<br>
><br>
><br>
> On Fri, Sep 20, 2013 at 2:30 PM, Greg Hendershott<br>
> <<a href="mailto:greghendershott@gmail.com">greghendershott@gmail.com</a>> wrote:<br>
>> I build Racket while keeping my forked repo's `master` branch an<br>
>> exact, fast-forwardable copy of PLT's remote upstream `master`. [1]<br>
>><br>
>> This has worked fine building Racket on Linux, and continues to do so.<br>
>><br>
>> But on OS X, I need to follow these instructions from INSTALL.TXT, wrt<br>
>> the pkg re-org:<br>
>><br>
>>>>><br>
>> On Mac OS X and Windows, you'll need native-library packages in the<br>
>> "native-pkgs" directory. In the git repostory, "native-pkgs" is a git<br>
>> submodule, so you'll need<br>
>>    git submodule init<br>
>>    git submodule update<br>
>> to get it set up.<br>
>> <<<<br>
>><br>
>> After I do so, the resulting build works great.<br>
>><br>
>> However it introduces a change:<br>
>><br>
>>>>><br>
>> greg@mbp in ~/src/plt/racket on master*<br>
>> $ git diff<br>
>> diff --git a/native-pkgs b/native-pkgs<br>
>> index f367c0c..f8c8984 160000<br>
>> --- a/native-pkgs<br>
>> +++ b/native-pkgs<br>
>> @@ -1 +1 @@<br>
>> -Subproject commit f367c0c4b05b91401d68b0180b416d616b31720d<br>
>> +Subproject commit f8c8984ebe8a442d474558dced0eb824cbb24772<br>
>> <<<<br>
>><br>
>> If I commit this, my master wouldn't be a FF copy anymore (AFIK). So I don't.<br>
>><br>
>> But as a result, if I switch to a topic branch without committing<br>
>> (normally a no-no), it's a bit weird:<br>
>><br>
>>>>><br>
>> greg@mbp in ~/src/plt/racket on master*<br>
>> $ git checkout imap-append-flags<br>
>> warning: unable to rmdir native-pkgs: Directory not empty<br>
>> Switched to branch 'imap-append-flags'<br>
>> <<<<br>
>><br>
>> After switching back to master, everything seems OK:<br>
>><br>
>>>>><br>
>> greg@mbp in ~/src/plt/racket on imap-append-flags*<br>
>> $ git checkout master<br>
>> M native-pkgs<br>
>> Switched to branch 'master'<br>
>> Your branch is ahead of 'origin/master' by 771 commits.<br>
>> <<<<br>
>><br>
>> Is this -- the warning about native-pkgs -- something I should just<br>
>> learn to ignore and treat as the new normal?<br>
>><br>
>><br>
>> [1]: <a href="http://www.greghendershott.com/2013/04/a-guide-for-infrequent-contributors-to-racket.html" target="_blank">http://www.greghendershott.com/2013/04/a-guide-for-infrequent-contributors-to-racket.html</a><br>

_________________________<br>
  Racket Developers list:<br>
  <a href="http://lists.racket-lang.org/dev" target="_blank">http://lists.racket-lang.org/dev</a><br>
</blockquote></div><br></div>