[fpc-other] GIT versioning server on Raspberry Pi?

Bo Berglund bo.berglund at gmail.com
Wed Jun 7 08:02:26 CEST 2017


On Tue, 6 Jun 2017 23:25:03 +0100, Graeme Geldenhuys
<mailinglists at geldenhuys.co.uk> wrote:

>> So it tries to "fix" this by making fake commits or something similar.
>
>I guess it’s trying to fix a “hack” with a hack. ;-)
>

I will have to get into understanding GIT operations more so I can see
the existing tags, right now I am only seeing the output of the
conversion process.
Have to read the manual...
Maybe the extra tags are all gone by now?

>> I can go elsewhere and clone the created repository at which time I
>> am getting the HEAD revision checked out. Relevant files compare fine
>
>Perfect.
>

Yes, it seems like at least HEAD is OK. :)

For a very simple project that is, I will have a look at the Android
App project later, it is not my baby but it is huge in comparison to
the Pascal projects I usually work on both concerning number of files
tracked and file system directory depth...

>
>> except they are not the correct timestamp.
>
>Git only tracks file contents, and some extra commit related metadata. 
>Timestamps are really irrelevant when it comes to managing file content 
>changes over time.
>

Well, CVS(NT) handles the timestamps as follows:
- At commit it stores the UTC time of the commit with the file in the
repository. Note that it is not the filesystem time stamp.

- At checkout it applies these timestamps to the local files so it is
possible to get a picture of the state at commit time wise. The time
is set depending on the state of the client computer regarding time
zone, DST etc.

- At updates (when changes made by other developers are retrieved) the
file is stamped with the local timoe of update. This is done to insure
that any make process following will recompile the file, it is just as
if the local developer had modified the file.

What file gets compiled at build time depends entirely on how the
development environment is thinking, i.e. make compares the object
file and source fiile time stamps for this and some IDE:s with
built-in intelligence do the same I assume.

So time stamp handling is not that important really it's just that I
observed the difference when comparing the GIT version of a project
with what I had in my CVS sandbox. And it only applies to a clean
checkout in CVS, otherwise the current time is what one gets.

Anyway, make clean usually is what is initially used after getting
other people's contributions, right? For C projects at least.

I don't know how Lazarus handles the selection of files to compile,
though. Or is it an FPC determination?
Could be either the compiler or the development IDE handling that...


-- 
Bo Berglund
Developer in Sweden



More information about the fpc-other mailing list