Subject: [noob] is this normal behavior

From: Harry Putnam <[email-masked]>
Date: Tue, 09 May 2017 09:02:56 -0400

Setup: Running openindiana (hipster) a solaris 11 open source branch
       git 2.12.2
       
I've recently moved from mercurial to git mainly because git appears
to receive the most development and the heaviest use.

I'm using git with hold over behavior developed from my time using cvs
long ago.

I keep a hierarchy of directories and files that mirrors the structure
on the OS where git is installed [just where ever tracked files are
located on OS] not the entire structure.

I keep a git repo on the same OS that is created by rsyncing  the
BUFFERED hierarchy into a git repo

Many of the BUFFERED files are symlinked to there places in the OS

Some are not because certain files being symlinked seemed to cause
permissions type problems on the OS.  In those cases they are
periodically copied to the BUFFER hierarchy 

So, not to get too tangled up in explaining my setup... tracked files
change in the buffer area or new files are created there.

Periodically I rsync the files in BUFFER over the files in git repo

And record the changes thru normal git operations

git status
git add (when needed)
git commit

,----
| Aside:
| While I would welcome comments or suggestions about using a setup like
| this, that is not the subject of this post.
`----

This is my most recent attempt at learning and using git but I have
done a few tries before.

I'm noticing behavior I do not recall seeing in earlier attempts.

rsyncing the buffer over the git repo is now producing a result where
`git status' shows any changed or added files as modified or new but
all need to be added before a commit can take place, not just the new
ones.

Shouldn't files that changed but are already being tracked just show
up as modified and not need adding?

That is, if I have the file ~/.bashrc, which is really a symlink to
BUFFER/OS/export/home/reader/.bashrc

  And is tracked in git repo as REPO/OS/export/home/reader/.bashrc

When;
  BUFFER/OS/export/home/reader/.bashrc

is edited.

Then  rsynced like below:
  BUFFER <root of rsync is here> /OS/export/home/reader/.bashrc
over
  GITREPO <root of rsync> /OS/export/home/reader.bashrc

Thereby changing the repo file in place

Since that file is already being tracked; shouldn't `git status' show
that file as modified but ready to be committed instead of a file that
is modified but needs to be added before a commit can happen?

Another side of this is that a `git diff FILE' only works before an
`git add .' operation is done.

That is, if I run `git diff FILE' AFTER `git add' .. no diff is
reported, even though it is not committed yet.

So, for example: if I'm committing and in the vi buffer of the commit
and want to see a diff of FILE to aid my log notes.

 git diff FILE will report nothing whatever.

Is that expected behavior?