On 2017-05-31 09:58, Bo Berglund wrote:
Aplogies if my postings are a bit longish,

You are like me then. :)  I try to write shorter messages, but often fail.


Access via http would probably be the simplest way to manage I
believe.

I actually found Gitolite the simplest (which uses SSH and manages its own user accounts and access) - independent of the operating system user accounts. So I highly recommend you look into that.

The Git Daemon is also very very straightforward, but doesn’t offer much in the form of security.

I try not to use HTTP for Git if I can - it’s the slowest protocol for use with Git. It’s like fitting a square peg in a round hole. With a big enough hammer it WILL fit, but not ideal. ;-)



I also build my FPC/Lazarus installations from svn sources since a
couple of years. But only on Linux, I have not tried it on Windows
yet.

I use near identical scripts on both platforms. So not any more difficult.


build myself then? Is it possible to get the GIT sources without GIT?

Yes, FreeBSD’s Ports system does that. It downloads a *.tar.xz archive of the latest release, then builds it locally.


When woking on multiple platforms like Linux, Mac and Windows there
has always been a struggle to get source code line endings compatible
with the platform. Windows uses CR-LF, Mac uses CR and Linux uses LF
and in some cases if this is wrong the sources will not work.

I believe the default behaviour is for each platform to have native EOL styles, after you cloned a repository. Internally, git stores files in a set EOL style (Unix-style I believe) on all platforms.

But some people like Linus Torvalds will tell you that technically a SCM system should *not* modify files at all, so that what you put in is exactly what you’ll get out. Git obviously supports this model too.


Now I have read a bit about GIT and it really looks like it checksums
whole files with a 40 char hash, which is used as the key to the
files. This would make the exact same file (content wise) on Linux and
say Windows appear different with different hash values unless there
is some mechanism in GIT that handles this.

Git handles that, and there will be no difference between that same patch being applied under Linux or Windows. The commit SHA1 should be identical. Git magic I guess. ;-)


And how does one specify the type of file to put in GIT? I want to
keep also some binaries there, but these invariably contain CR, LF and
CRLF byte combinations that MUST NOT be changed when moving between
platforms...

You can create a ".gitattributes" file in the root of your git repository. You can then specify which files should be treated as binary data, which diff algorithm should be used, and which files should have specific EOL styles. See the fpGUI repository as an example.

=======================[ .gitattribute ]=======================
# Set default behaviour, in case users don't have core.autocrlf set.
* text=auto

# Explicitly set some EOL styles and preferred diff style
*.pas  text diff=pascal
*.lpr  text diff=pascal
*.pp   text diff=pascal
*.inc  text diff=pascal
*.txt  text
*.xpm  text
*.ods  diff=odf
*.odt  diff=odf
*.odp  diff=odf

# declare files that must always have specific EOL style
*.dez  text eol=crlf

# True binary files that should not be modified (just for safety sake)
*.jpg  binary
*.png  binary
*.bmp  binary
*.inf  binary
*.INF  binary
*.zip  binary
*.res  binary
*.tar.gz  binary
*.wav  binary
*.pdf  binary

===============================================================


Since we have not used CVS in any complex way (but we do use the CVSNT
flavour on Windows), I assume that the repository files would be
possible to convert into the GIT format. After all each file contains
a history with commit messages, timestamps, tags and branches, which
are all OK.

I haven't used CVS in over 20 years easily. I know there is a CVS-to-Git conversion support, just like there is for SubVersion, Mercurial and Perforce, but I've only [personally] done SubVersion conversions.

I unfortunately don't know the details of what you ask. I'm sure a Internet search or the Git man pages will help you further.


Regards,
  Graeme

--
fpGUI Toolkit - a cross-platform GUI toolkit using Free Pascal
http://fpgui.sourceforge.net/

My public PGP key:  http://tinyurl.com/graeme-pgp
_______________________________________________
fpc-other maillist  -  fpc-other@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-other

Reply via email to