So: ~/darktable$ git describe release-2.3.0-150-gec88795ce $ git submodule status 8c0a57825a6e209b109ac18f8ba6966b36c596eb src/external/rawspeed (heads/develop) ~/darktable$ ls -lah src/external/rawspeed/CMakeLists.txt -rw-r--r-- 1 lebedevri lebedevri 1.9K Jan 4 20:57 src/external/rawspeed/CMakeLists.txt
We are with working git master, with working submodule. ~/darktable$ git checkout darktable-2.2.x error: The following untracked working tree files would be overwritten by checkout: bla bla bla Please move or remove them before you switch branches. Aborting git does want us to accidentally loose data, so it warns us. Since we know that it is expected, we have two ways: WAY ONE: ~/darktable$ git checkout darktable-2.2.x -f warning: unable to rmdir src/external/rawspeed: Directory not empty Switched to branch 'darktable-2.2.x' Your branch is up-to-date with 'upstream/darktable-2.2.x'. ~/darktable$ git describe release-2.2.1-3-g4596f0b5d ~/darktable$ ls -lah src/external/rawspeed/CMakeLists.txt -rw-r--r-- 1 lebedevri lebedevri 4.7K Jan 4 20:58 src/external/rawspeed/CMakeLists.txt We are with working git stable branch. Let's get back to master: ~/darktable$ git checkout master M src/external/rawspeed Switched to branch 'master' Your branch is up-to-date with 'origin/master'. ~/darktable$ git describe release-2.3.0-150-gec88795ce ~/darktable$ git submodule status 8c0a57825a6e209b109ac18f8ba6966b36c596eb src/external/rawspeed (heads/develop) ~/darktable$ ls -lah src/external/rawspeed/CMakeLists.txt ls: cannot access 'src/external/rawspeed/CMakeLists.txt': No such file or directory Oops, git did not auto-handle the submodule, let's do that manually ~/darktable$ git submodule update ~/darktable$ git submodule status 8c0a57825a6e209b109ac18f8ba6966b36c596eb src/external/rawspeed (heads/develop) ~/darktable$ ls -lah src/external/rawspeed/CMakeLists.txt ls: cannot access 'src/external/rawspeed/CMakeLists.txt': No such file or directory Let's re-try with -f ~/darktable$ git submodule update -f Submodule path 'src/external/rawspeed': checked out '8c0a57825a6e209b109ac18f8ba6966b36c596eb' ~/darktable$ git submodule status 8c0a57825a6e209b109ac18f8ba6966b36c596eb src/external/rawspeed (heads/develop) ~/darktable$ ls -lah src/external/rawspeed/CMakeLists.txt -rw-r--r-- 1 lebedevri lebedevri 1.9K Jan 4 20:59 src/external/rawspeed/CMakeLists.txt ~/darktable$ And we're back to git master! Summary: so even with normal operations, -f is needed... WAY TWO: ~/darktable$ rm -rf src/external/rawspeed ~/darktable$ git checkout darktable-2.2.x Switched to branch 'darktable-2.2.x' Your branch is up-to-date with 'upstream/darktable-2.2.x'. ~/darktable$ git describe release-2.2.1-3-g4596f0b5d ~/darktable$ git submodule status ~/darktable$ ls -lah src/external/rawspeed/CMakeLists.txt -rw-r--r-- 1 lebedevri lebedevri 4.7K Jan 4 21:02 src/external/rawspeed/CMakeLists.txt We are with working git stable branch. Let's get back to master: ~/darktable$ git checkout master Switched to branch 'master' Your branch is up-to-date with 'origin/master'. ~/darktable$ git describe release-2.3.0-150-gec88795ce ~/darktable$ git submodule status -8c0a57825a6e209b109ac18f8ba6966b36c596eb src/external/rawspeed ~/darktable$ ls -lah src/external/rawspeed/CMakeLists.txt ls: cannot access 'src/external/rawspeed/CMakeLists.txt': No such file or directory ~/darktable$ git submodule update Cloning into '/home/lebedevri/darktable/src/external/rawspeed'... Submodule path 'src/external/rawspeed': checked out '8c0a57825a6e209b109ac18f8ba6966b36c596eb' So it will need to re-clone rawspeed. Note: git submodule update takes --reference= parameter, you may want to pass --reference ~/darktable/.git/modules/src/external/rawspeed/ which is where git put the submodule repo by default ~/darktable$ git submodule status 8c0a57825a6e209b109ac18f8ba6966b36c596eb src/external/rawspeed (heads/develop) ~/darktable$ ls -lah src/external/rawspeed/CMakeLists.txt -rw-r--r-- 1 lebedevri lebedevri 1.9K Jan 4 21:03 src/external/rawspeed/CMakeLists.txt ~/darktable$ And we're back to git master! Summary: no -f, but it re-clones the submodule. TLDR: just use git checkout -f and git submodule update -f Roman. On Wed, Jan 4, 2017 at 8:37 PM, Ulrich Pegelow <ulrich.pege...@tongareva.de> wrote: > Hi, > > that recent move has now screwed everything here :( > > If I want to build: > > CMake Error at src/external/CMakeLists.txt:4 (add_subdirectory): > The source directory > > /home/pegelow/darktable/src/external/rawspeed > > does not contain a CMakeLists.txt file. > > and ./build.sh aborts (and I did what has been suggested by Wolfgang > before). > > > If I want to checkout an earlier commit to get away from this rawspeed > thing: > > git checkout 693ae87b4dfd0c291969e2043c606935bf55fca5 > error: The following untracked working tree files would be overwritten by > checkout: > src/external/rawspeed/data/cameras.xml > Please move or remove them before you can switch branches. > Aborting > > All I did was going to darktable-2.2.x branch in-between. > > WTF? > > Steps like this really need a preparation with clear usage instructions! > Right now I'm out with no further clues. > > Ulrich > > > Am 02.01.2017 um 22:27 schrieb Roman Lebedev: >> >> Hi everyone. >> >> Starting with today, darktable git master tracks rawspeed >> library as a submodule. >> >> Which means, after updating darktable repo (git pull/git fetch), >> and before building, you now need to make sure that the >> submodule is updated to. >> >> After fresh clone, you need to run this once: >> $ git submodule update --init >> >> And day-to-day, after git pull for darktable >> (i'm not 100% sure about the exact command, >> someone with more knowledge please do chime in) >> $ cd src/external/rawspeed && git pull && \ >> git checkout -f && git submodule update -f >> >> Roman. > > > > ___________________________________________________________________________ > darktable developer mailing list > to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org > ___________________________________________________________________________ darktable developer mailing list to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org