Hi, I'm trying to start a new "clean" repo init in my "/seL4/sel4webserver" directory so I deleted everything there, then I executed: repo forall -c "git reset --hard HEAD" repo forall -c "git clean -df" the I executed: repo init -u https://github.com/SEL4PROJ/sel4webserver-manifest.git repo sync but when I go to the "/projects/webserver/lighttpd" directory and check the content of local "lighttpd.sh" I see different (old) content than what you can see via web interface here: https://github.com/seL4/sel4webserver/blob/master/lighttpd/lighttpd.sh Specifically, via web interface I can see the recent commit: https://github.com/seL4/sel4webserver/commit/6a98bdcb2be6ffc693325bbb48df9d6... but in my local copy of the file I can't see the changes. Is it due to come kind of cache issue of Git...? Does it require some time to be synced what you see via web interface and what you get downloaded via CLI? Am I doing something wrong? Thank you in advance and sorry for this newbie like question. Hugo
On 11 June 2021 5:39:18 pm AEST, "Hugo V.C."
Hi,
I'm trying to start a new "clean" repo init in my "/seL4/sel4webserver" directory so I deleted everything there, then I executed:
repo forall -c "git reset --hard HEAD" repo forall -c "git clean -df"
the I executed:
repo init -u https://github.com/SEL4PROJ/sel4webserver-manifest.git repo sync
but when I go to the "/projects/webserver/lighttpd" directory and check the content of local "lighttpd.sh" I see different (old) content than what you can see via web interface here:
Repo checks out a version that is in a manifest, that may not be the latest version. To get the tip of the tree in a repository you need to use git commands directly in the directory. So if you do git checkout HEAD In your lighthttp directory you should get the latest changes. -- Sent from my Android device with K-9 Mail. Please excuse my brevity.
Hi Hugo,
On 11 Jun 2021, at 17:39, Hugo V.C.
wrote: [..] repo init -u https://github.com/SEL4PROJ/sel4webserver-manifest.git repo sync but when I go to the "/projects/webserver/lighttpd" directory and check the content of local "lighttpd.sh" I see different (old) content than what you can see via web interface here:
https://github.com/seL4/sel4webserver/blob/master/lighttpd/lighttpd.sh
Specifically, via web interface I can see the recent commit:
https://github.com/seL4/sel4webserver/commit/6a98bdcb2be6ffc693325bbb48df9d6...
but in my local copy of the file I can't see the changes.
The default.xml manifest in sel4webserver-manifest points to specific hashes instead of branches (for some manifest repos we have set up both, sel4webserver seems to have only specific hashes). The current default.xml (updated 41min ago) does point to 6a98bd (head of master) of sel4webserver, but the one before that points to the previous revision of sel4webserver (63c9343), and your `repo sync` had probably picked up that one. The version gets updated automatically by CI whenever the tests pass, so that the manifest should always point to a consistent collection of repository versions that work together. But CI takes a while to run and/or might not have passed because of a failure in another repository in the manifest, so it can take hours or sometimes even days to catch up to the head of the master branch. That doesn't need to slow down development (see below), but it might give you something that lags a bit behind.
Is it due to come kind of cache issue of Git...? Does it require some time to be synced what you see via web interface and what you get downloaded via CLI? Am I doing something wrong?
You're not doing anything wrong, it's that the default is not set up for development. It's more for "give me the latest known-good version combination".
For development, where you usually want to work on the latest version of a specific repo + latest known good combination of everything else, you would after "repo sync" usually go into that specific repo and check out the branch you want to work on. There are many ways, I usually do something like this:
...
repo sync
cd sel4webserver
git checkout master
git checkout -b new-feature-branch
...
Thank you in advance and sorry for this newbie like question.
No worries, `repo` is its own kind of specialness. Slightly less pain that git submodules, but still.. Cheers, Gerwin
Gerwin, Peter: thank you for your detailed explanations! Are very useful to
me to keep on working on the repo.
El vie., 11 jun. 2021 10:46, Gerwin Klein
Hi Hugo,
On 11 Jun 2021, at 17:39, Hugo V.C.
wrote: [..] repo init -u https://github.com/SEL4PROJ/sel4webserver-manifest.git repo sync but when I go to the "/projects/webserver/lighttpd" directory and check the content of local "lighttpd.sh" I see different (old) content than what you can see via web interface here:
https://github.com/seL4/sel4webserver/blob/master/lighttpd/lighttpd.sh
Specifically, via web interface I can see the recent commit:
https://github.com/seL4/sel4webserver/commit/6a98bdcb2be6ffc693325bbb48df9d6...
but in my local copy of the file I can't see the changes.
The default.xml manifest in sel4webserver-manifest points to specific hashes instead of branches (for some manifest repos we have set up both, sel4webserver seems to have only specific hashes).
The current default.xml (updated 41min ago) does point to 6a98bd (head of master) of sel4webserver, but the one before that points to the previous revision of sel4webserver (63c9343), and your `repo sync` had probably picked up that one.
The version gets updated automatically by CI whenever the tests pass, so that the manifest should always point to a consistent collection of repository versions that work together. But CI takes a while to run and/or might not have passed because of a failure in another repository in the manifest, so it can take hours or sometimes even days to catch up to the head of the master branch.
That doesn't need to slow down development (see below), but it might give you something that lags a bit behind.
Is it due to come kind of cache issue of Git...? Does it require some time to be synced what you see via web interface and what you get downloaded via CLI? Am I doing something wrong?
You're not doing anything wrong, it's that the default is not set up for development. It's more for "give me the latest known-good version combination".
For development, where you usually want to work on the latest version of a specific repo + latest known good combination of everything else, you would after "repo sync" usually go into that specific repo and check out the branch you want to work on. There are many ways, I usually do something like this:
... repo sync cd sel4webserver git checkout master git checkout -b new-feature-branch ...
Thank you in advance and sorry for this newbie like question.
No worries, `repo` is its own kind of specialness. Slightly less pain that git submodules, but still..
Cheers, Gerwin
participants (3)
-
Gerwin Klein
-
Hugo V.C.
-
Peter Chubb