Coty, judging by the update you made here (where you originally raised this question as a comment one another post), for you the term "whole project" means "everything in a namespace". You have discovered that SET sc= $SYSTEM.OBJ.ExportAllClasses(filename) does what you want.

For many of us the word "project" refers to a Studio feature that allows us to group a subset of a namespace's code.

Studio projects can be manipulated programmatically using the %Studio.Project class.

Then it definitely sounds like you need to rebuild indices. After doing that, please test again without %IGNOREINDICES and let us know if the results are correct. Then test again after your application has updated records for a while. If the difference appears again, either there's a bug that InterSystems needs to know about, or perhaps your app is updating globals directly using COS commands (i.e. not via Objects or SQL).

What is your $ZVERSION value? Perhaps you are running a version with a known problem in the area of index maintenance.

Caché telnet service exists only on Windows. On other platforms would you rely on OS-level telnet service? Nowadays on UNIX/Linux it's uncommon to find telnet, and ssh is typical instead.

If there's a concern about passwords travelling in plaintext, remember Caché telnet service can be configured to accept telnet over SSL/TLS.

Vitaliy's answer pointed you to a classmethod that does the job. Sounds like maybe you're not sure how to invoke classmethods in Caché ObjectScript, so here's a transcript from a quick test run I did in Terminal:

USER>set bSame=##class(%Library.File).Compare("c:\s\junk.txt","c:\s\junk2.txt")
 
USER>write bSame
0
USER>set bSame=##class(%Library.File).Compare("c:\s\junk.txt","c:\s\junk.txt")
 
USER>write bSame
1
USER>w $zv
Cache for Windows (x86-64) 2017.1.1 (Build 111U) Wed May 17 2017 15:34:56 EDT
USER>

If Vitaliy's answer meets your needs please set the checkmark alonngside its title line.