git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
* standarize mtime when git checkout
@ 2013-07-08 21:39 Rick Liu
  2013-07-08 22:03 ` Junio C Hamano
  2013-07-09  3:54 ` René Scharfe
  0 siblings, 2 replies; 4+ messages in thread
From: Rick Liu @ 2013-07-08 21:39 UTC (permalink / raw)
  To: git

Hi,

Currently when doing "git checkout" (either for a branch or a tag),
if the file doesn't exist before,
the file will be created using current datetime.

This causes problem while trying to tar the git repository source files (excluding .git folder).
The tar binary can be different 
even all of file contents are the same (eg. from the same GIT commit)
because the mtime for the files might be different due to different "git checkout" time.

eg:
User A checkout the commit at time A and then tarball the folder.
User B checkout the same commit as time B and then tarball the folder.
The result tarball are binary different 
even though all of tarball contents are the same 
except the mtime for each file.


Can we use GIT's commit time as the mtime for all of files/folders when we do "git checkout"?


Rick

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: standarize mtime when git checkout
  2013-07-08 21:39 standarize mtime when git checkout Rick Liu
@ 2013-07-08 22:03 ` Junio C Hamano
  2013-07-09  3:54 ` René Scharfe
  1 sibling, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2013-07-08 22:03 UTC (permalink / raw)
  To: Rick Liu; +Cc: git

"Rick Liu" <rickliu@broadcom.com> writes:

> Can we use GIT's commit time as the mtime for all of files/folders when we do "git checkout"?

No.  That will screw up common practice of build based on file
timestamps (e.g. make).

You may be interested in "git archive $commit" which will set the file
timestamps that of the commit object.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: standarize mtime when git checkout
  2013-07-08 21:39 standarize mtime when git checkout Rick Liu
  2013-07-08 22:03 ` Junio C Hamano
@ 2013-07-09  3:54 ` René Scharfe
  2013-07-09 15:45   ` Rick Liu
  1 sibling, 1 reply; 4+ messages in thread
From: René Scharfe @ 2013-07-09  3:54 UTC (permalink / raw)
  To: Rick Liu; +Cc: git

Am 08.07.2013 23:39, schrieb Rick Liu:
> Hi,
>
> Currently when doing "git checkout" (either for a branch or a tag),
> if the file doesn't exist before,
> the file will be created using current datetime.
>
> This causes problem while trying to tar the git repository source files (excluding .git folder).
> The tar binary can be different
> even all of file contents are the same (eg. from the same GIT commit)
> because the mtime for the files might be different due to different "git checkout" time.
>
> eg:
> User A checkout the commit at time A and then tarball the folder.
> User B checkout the same commit as time B and then tarball the folder.
> The result tarball are binary different
> even though all of tarball contents are the same
> except the mtime for each file.
>
>
> Can we use GIT's commit time as the mtime for all of files/folders when we do "git checkout"?

That would break tools like make which rely on a files mtime to build 
them.  They wouldn't be able to detect switching between source file 
versions that are older than the latest build.

You can use "git archive" to create tar files in which all entries have 
their mtime set to the commit time.  Such archives only contain tracked 
(committed) files, though.  And different versions of git can create 
slightly different archives, but such changes have been rare.

René

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: standarize mtime when git checkout
  2013-07-09  3:54 ` René Scharfe
@ 2013-07-09 15:45   ` Rick Liu
  0 siblings, 0 replies; 4+ messages in thread
From: Rick Liu @ 2013-07-09 15:45 UTC (permalink / raw)
  To: René Scharfe; +Cc: git

Thanks René~
I'll use "git archive" command to create the tarball.

Rick

-----Original Message-----
From: René Scharfe [mailto:rene.scharfe@lsrfire.ath.cx] 
Sent: Monday, July 08, 2013 8:54 PM
To: Rick Liu
Cc: git@vger.kernel.org
Subject: Re: standarize mtime when git checkout

Am 08.07.2013 23:39, schrieb Rick Liu:
> Hi,
>
> Currently when doing "git checkout" (either for a branch or a tag),
> if the file doesn't exist before,
> the file will be created using current datetime.
>
> This causes problem while trying to tar the git repository source files (excluding .git folder).
> The tar binary can be different
> even all of file contents are the same (eg. from the same GIT commit)
> because the mtime for the files might be different due to different "git checkout" time.
>
> eg:
> User A checkout the commit at time A and then tarball the folder.
> User B checkout the same commit as time B and then tarball the folder.
> The result tarball are binary different
> even though all of tarball contents are the same
> except the mtime for each file.
>
>
> Can we use GIT's commit time as the mtime for all of files/folders when we do "git checkout"?

That would break tools like make which rely on a files mtime to build 
them.  They wouldn't be able to detect switching between source file 
versions that are older than the latest build.

You can use "git archive" to create tar files in which all entries have 
their mtime set to the commit time.  Such archives only contain tracked 
(committed) files, though.  And different versions of git can create 
slightly different archives, but such changes have been rare.

René

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-07-09 15:46 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-08 21:39 standarize mtime when git checkout Rick Liu
2013-07-08 22:03 ` Junio C Hamano
2013-07-09  3:54 ` René Scharfe
2013-07-09 15:45   ` Rick Liu

git@vger.kernel.org list mirror (unofficial, one of many)

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://public-inbox.org/git
	git clone --mirror http://ou63pmih66umazou.onion/git
	git clone --mirror http://czquwvybam4bgbro.onion/git
	git clone --mirror http://hjrcffqmbrq6wope.onion/git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V1 git git/ https://public-inbox.org/git \
		git@vger.kernel.org
	public-inbox-index git

Example config snippet for mirrors.
Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.version-control.git
	nntp://7fh6tueqddpjyxjmgtdiueylzoqt6pt7hec3pukyptlmohoowvhde4yd.onion/inbox.comp.version-control.git
	nntp://ie5yzdi7fg72h7s4sdcztq5evakq23rdt33mfyfcddc5u3ndnw24ogqd.onion/inbox.comp.version-control.git
	nntp://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/inbox.comp.version-control.git
	nntp://news.gmane.io/gmane.comp.version-control.git
 note: .onion URLs require Tor: https://www.torproject.org/

code repositories for project(s) associated with this inbox:

	https://80x24.org/mirrors/git.git

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git