Well, I can surely tell everyone was there were the work is lost for
any reason, thus some good practices may help avoid similar situations
in future:
1. After every day of work push changes to git, even unfinished work
in progress. Start from day one. You can use wip branches, you can
squash wip commits into a final commit to be merged into master when
things are ready. You can use several different remotes if the work is
important.
2. Always make a backup, daily, weekly, monthly. Make big backups
every month or quartetly. In worst case you only loose 1..3 months of
work. Assume tomorrow your computer will blow, gets stolen, or there
will be a zombie apocalypse.
3. Always verify backups manually if all you need is really there.
Sometimes symlinks or other weird stuff can get there in place of real
files. Having a backup file, comparing backup file checksum, etc, does
not always mean things you care most are in the backup.
4. Use tar, rsync, zfs snapshot for backup, whatever works best. You
can create a cron script that will do this for you.
5. If you plan to export backup from your local machine to a remote
location encrypt it before transfer. Things may get stolen.
6. Keep copies in several different locations. Do not keep all backups
on your main working machine. Computers tend to break, so are hard
drives / pendrives.
7. Read only backups like cd/dvd/bd are cheap, small, not prone to
ransomware encryption / emp / etc. BluRay disk contains 20..50..100GB
storage capacity and is not expensive (including burners) so a really
good option for big bakcups. You can also use several rewritable
mediums in cycles, and multisession approach, etc.
The mentioned before make build output files and maybe cmake build
folder is the only thing that comes to my mind. In addition to that
you may create a builder script that will direct each cmake build to
be created in a separate directory with a timestamp suffix so you will
have a long history of builds along the source code just in case (I
use that in some projects).
If you kept all files locally, did not create a backup nor snapshot
not remote git repo on your own, and your hard drive is broken, then
there is no magic, except disk recovery services, or asking the other
side if they have a backup, sorry.
Take care,
Tomek
On Mon, Sep 22, 2025 at 5:26 PM Siddhartha Sharma <[email protected]>
wrote:
Hi Tomek,
Thanks for your reply and information provided.
Well, I would say I didn't take the backup as I wasn't even expecting my
company would never return my files in the first place. After my project, I
was already planning to transfer all locally commited files to a git
repository but just didn't get the chance to do so.
After that my SSD got corrupted as well and I tried to get the data
recovery but I think I need yo find a better data recovery solutions
company to do this. Apart from that, no other way to get it back so I am
contacting you as my last resort.
I understand that it may seem like a felony but certain situations may
demand for such incidents so if possible to take the backup and snapshots,
please let me know.
Awaiting your response!
Thanks & Regards
Siddhartha Sharma
Show quoted text
On Mon, 22 Sept 2025, 19:09 Tomek CEDRO, <[email protected]> wrote:
Hey there Siddhartha,
I am sorry to say but if you did not, during all these months, have
your own git repo where you pushed your work in progress code, or you
did not do any backup / filesystem snapshot on your own, and you did
not copy the working files but moved them, then there is no way to get
them except ask for copy from where you sent them.
If you did not `make clean` the project since then there still may be
build output files, maybe along debug symbols depending how you
configured the build, that would be tedious work but may help in
restoring your work. But these are located next to source files so
probably you moved them away too.
If you used CMake (not Make) then all build files should be copied to
build location. Check if that exists.
NuttX does not share local user source code anywhere on its own. That
would constitute information (and most probably company secrets) leak,
that would not only break trust in NuttX but also constitute a felony,
so we don't do anything like this behind user back.
"Always Make A Backup"^TM. Even three four backups in different places
so things are not gone if one of the backups locations fail. You
should have additional backup even in case disk you gave away was
broken in transport. Are you sure you have no backup?
Have a good day :-)
Tomek
On Mon, Sep 22, 2025 at 1:00 PM Siddhartha Sharma <[email protected]>
wrote:
Dear David,
I hope you are doing well. I am reaching out with an urgent question
regarding the NuttX build environment and whether there might be any
possibility of recovering project files that were connected and built
through it.
Here is my situation:
I was working on a complex project with NuttX integrated into
Dronecode/PX4.
Due to limited local storage on my SSD, I mounted and connected to the
NuttX environment in order to build and test. My understanding was
that
this process allowed files to be shared in real-time with the NuttX
system,
even when they were not fully stored locally.
Unfortunately, my company asked me to cut-paste my project files to an
external hard drive for review, but they have not been returned to
me. Some
of my work was committed to my PX4 and QGC forks, but critical
portions
were only in the working tree that was being built with NuttX.
This project represents months of work and is highly complicated —
rebuilding it from scratch is not feasible for me.
Given this, I wanted to ask:
When using NuttX in a build environment (PX4/Dronecode CI or
otherwise),
does NuttX or the connected system maintain any temporary file caches,
build snapshots, or traces of user project files?
If so, is there any way to request access to those caches or logs to
attempt recovery?
More generally, does the NuttX environment ever retain build files
from a
developer’s machine, or is everything strictly local unless explicitly
pushed to a remote repository?
I realize this is an unusual request, but I am exploring every
possible
avenue before concluding that my uncommitted work is permanently
lost. Your
guidance on whether NuttX or its connected build infrastructure could
hold
any recoverable traces would mean a great deal.
Thank you very much for your time and for the incredible work you do
with
NuttX.
Sincerely,
Siddhartha Sharma
--
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info
--
CeDeROM, SQ7MHZ, http://www.tomek.cedro.info