zip 形式アーカイブ展開時のタイムスタンプ問題

400 views
Skip to first unread message

フジワラ

unread,
Sep 8, 2012, 9:01:54 AM9/8/12
to mercur...@googlegroups.com
藤原です。

"hg archive" コマンドによるアーカイブ作成で ZIP 形式を指定した場合、
作成されたアーカイブファイルを展開した際に、日付情報が適切に反映さ
れない、という問題が発生します。

根本的な原因は、Python 標準同梱の zipfile ライブラリが、タイムスタ
ンプ情報を適切に格納できないことにあり、いまのところ解消の目処は立っ
ていません。

とはいえ、実際に使用する局面になって、どっちが悪いと言い合いしても
建設的ではありませんので:

(1) zip 形式以外のアーカイブ形式を使用するか、
(2) 別な手段で zip アーカイブを作成する

といった回避を行ってください。

この問題に関する詳細、ならびに後者の作成手順例に関しては、ブログ
エントリを公開してありますので、そちらを参照してください。

http://d.hatena.ne.jp/flying-foozy/20120908/1347106838

Katsunori FUJIWARA

unread,
Sep 11, 2012, 1:06:47 PM9/11/12
to mercur...@googlegroups.com
藤原です。

2012年9月8日 22:01 フジワラ <flying...@gmail.com>:

> "hg archive" コマンドによるアーカイブ作成で ZIP 形式を指定した場合、
> 作成されたアーカイブファイルを展開した際に、日付情報が適切に反映さ
> れない、という問題が発生します。
>
> 根本的な原因は、Python 標準同梱の zipfile ライブラリが、タイムスタ
> ンプ情報を適切に格納できないことにあり、いまのところ解消の目処は立っ
> ていません。

『zipfile ライブラリが、タイムスタンプ情報を適切に格納できない』と
思っていたのですが、既存機能の範囲で対処できそうだという情報&対処
実装が寄せられました。

http://bz.selenic.com/show_bug.cgi?id=3600#c12

確認した範囲では、Python 2.4 版でも使用可能な機能なので、Mercurial の
互換性保証範囲を狭める心配は無さそうです。

とりあえず問題解消の技術的な目処は付いた感じですね。

ZIP 形式の仕様書や "man zip" 等のドキュメントでの記述で
は (extended, extra) x (attribute, field) の組み合わせで、それぞれ
意味が微妙に違っている(ように見える)ため、英語に堪能ではない身には、
こういった情報は凄い助かります。

--
----------------------------------------------------------------------
FUJIWARA Katsunori(flying...@gmail.com)

Reply all
Reply to author
Forward
0 new messages