X



Git 15©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ)垢版2017/02/05(日) 05:22:15.65ID:AxwpDksc0
ソースコード管理を行う分散型バージョン管理システム、Gitについて語ろう。

Git - Fast Version Control System
http://git-scm.com/

◆関連サイト
Pro Git - Table of Contents
http://git-scm.com/book/ja
Git入門
http://www8.atwiki.jp/git_jp/

◆前スレ
Git 13
http://echo.2ch.net/test/read.cgi/tech/1439563364/
Git 14
http://echo.2ch.net/test/read.cgi/tech/1457412803/
VIPQ2_EXTDAT: default:vvv:1000:512:----: EXT was configured
0002デフォルトの名無しさん (ワッチョイ)垢版2017/02/05(日) 06:30:39.79ID:Aiaziz9C0
< `∀´>ニダー
0005デフォルトの名無しさん (エムゾネ)垢版2017/02/05(日) 15:39:17.20ID:uN/SMrchF
>1 乙py
0007デフォルトの名無しさん (ワッチョイ)垢版2017/02/07(火) 11:25:57.76ID:HoZye2uF0
rebaseの使い途がそんなにないんじゃね
コミットが何百もあったときにrebaseで綺麗にできると思えん
squashはresetでできる
使えるのは過去のコメントを編集するときくらいか
0008デフォルトの名無しさん (ワッチョイ)垢版2017/02/08(水) 03:26:19.24ID:EqksEKaR0
>>7
コミットが何百もあるブランチを
マージするってのがそもそも間違いだよね?

そのどでかいブランチから、小さく機能を抜き取って
小さなブランチにしてマージするべきだよ。

そのときにcherry-pickを使うのは当然ながら
抜き取ったあとの整理でrebaseも行う
0010デフォルトの名無しさん (ワッチョイ)垢版2017/02/08(水) 11:32:37.78ID:glAhqeU30
何かそういう、ブランチを整理するときのワークフローで分かりやすいドキュメントってないですか?

いつもいろんなgit操作を試行錯誤してしまって、本題がコミットすることからブランチ整理することにずれていってしまうので。
0011デフォルトの名無しさん (ワッチョイ)垢版2017/02/08(水) 11:38:22.96ID:AT2+3Uwc0
>>8
なるほどと思ったが
cherry-pickは操作後の動作が保証できない
mergeなら操作後の動作が保証できる。完全ではないがcherry-pickよりまし
なのでmergeのほうが優れている
0014デフォルトの名無しさん (ワッチョイ)垢版2017/02/08(水) 19:40:31.54ID:Z548kjM+0
最強の整理整頓術はそもそもモノを増やさないことだってのは全く間違ってないと思う
ブランチ整理って何がしたいのか分からんけど、successful git branching modelでも参考にしたらええんちゃうの
0015デフォルトの名無しさん (ワッチョイ)垢版2017/02/08(水) 22:22:54.22ID:EqksEKaR0
>>11
> cherry-pickは操作後の動作が保証できない

何を言ってるんだ?
cherry-pickはあるコミットを持ってくるというだけの機能で
cherry-pickしたあとの動作なんて最初から何も保証してないんだが

保証できないんじゃなくて、保証してない
だからrebaseして、そのcherry-pickしたコミットが正しく動くようにするんだよ

ちなみに、そもそもなんでcherry-pickして動かなくなるのかといえば
こまめなrebaseをしてないから。例えばコミットに対する修正を別コミットに
していたりするとそうなる。こまめにrebaseして意味のある単位にコミットを
修正していれば他人が読んだときのレビューも楽になるし、再利用もしやすくなる


> mergeなら操作後の動作が保証できる

mergeはブランチ全てをマージするものであってそもそも使うべきところが違う。
ブランチの中の1コミットだけを抜き取りたいときにmergeではできない
(できないからmergeの方が劣ってるとでも?w)

使い方が違うだけの話でどちらかが優れているとか劣っているとかいう話じゃない
0016デフォルトの名無しさん (ワッチョイ)垢版2017/02/08(水) 22:48:05.72ID:EqksEKaR0
>>13
> あっ、そういうのはいいんで、rebaseを含めブランチの履歴を整理する分かりやすいワークフローがあったら教えて下さい

簡単に言えば、こまめなコミット、こまめなrebaseだよ
有名なオープンソースソフト(例git)のコミットログを眺めてみればいい
あれが目標とすべきコミット

眺めてみればいいといったが、コミットログっていうのは読むものなんだよ。
後から読むこともあるしレビューのときに読むこともある。だから可読性が必要

じゃあコミットの可読性はどうやればあげられるかというと
意味がある単位で小さくまとまめること

例えば試行錯誤した形跡を表しているようなコミットを持ってこられたって
ここバグってる?すぐあとのコミットで修正されてるやーんとなって時間を無駄に費やするだけ
かと言って複数のコミットを全部まとめてしまったら量が多くなりすぎる

では意味がある単位で小さくまとめる(=ワークフロー)にはどうするかとうと
まず開発中は小さくコミットしていく。大きな単位でコミットしてしまうと後で分けるのが大変になるから。
そして開発中はこまめにrebaseする。他の人にとって知りたいのは結果であって過程じゃない。
プルリク出すときには、最初から間違いなく作業しましたよっていう状態にして置かなければいけない。

rebaseが下手な人はコミットも大きくなって、いろんな修正を混ぜてしまう。
そういうことをするからrebaseするとコンフリクトまで起きてしまう。
コミットを小さくしていれば驚くほど簡単にrebaseができてしまう。
だからこまめなrebaseも苦にならない
0018デフォルトの名無しさん (アウアウカー)垢版2017/02/09(木) 08:27:12.93ID:ClsEJCvia
git(hub)-flow
0019デフォルトの名無しさん (エーイモ)垢版2017/02/13(月) 10:17:21.25ID:Ql0/GOXFE
git mvしないでmvしちゃったんですけどgit addしたらrename扱いになってました
絶対にgit mvしなくてもgit画面どう見てくれるから問題ないってことですか?
0021デフォルトの名無しさん (ワッチョイ)垢版2017/02/13(月) 15:13:09.61ID:UyeCKZqE0
改行コード変わるだけで別ファイルになるけどな
0025デフォルトの名無しさん (ワッチョイ)垢版2017/02/18(土) 01:58:54.36ID:SqGT/vv90
>>24
ごめん、プッシュね。

マネジャーの人が俺らの作業をチェックしたいらしくて、
毎日帰るときにみんなプッシュしてから帰宅する。
svn時代と変わらない。
0031デフォルトの名無しさん (ワッチョイ)垢版2017/02/22(水) 00:19:55.01ID:doFig/5A0
エディタに自動保存機能なけりゃ編集内容はメモリ上にしかないからどのみち死ぬ
0032デフォルトの名無しさん (ワッチョイ)垢版2017/02/22(水) 15:40:38.57ID:7bpb3LbA0
>>31
数分おきにエディタに :wq! を送るスクリプトを作ろう
0035デフォルトの名無しさん (ワッチョイ)垢版2017/02/22(水) 19:13:30.90ID:nmnET67+0
プレーンテキストとかワープロとかならともかく、ソースコードだったらコンパイルするためにどんどん保存してるんだから自動保存ってそこまで必要性高いものでもなくない?
0038デフォルトの名無しさん (ワッチョイ)垢版2017/02/23(木) 01:11:00.83ID:9wlFqT9C0
ショートカットキーctrl+Sで保存は便利でよく使う
履歴残し程度なら同様にショートカットキーで保存とコミットができるようにエディタにスクリプト組み込めばOK
初回ショートカットキーで一時作業用ブランチを切らせて
一通り終わったなら別のショートカットキーでsquashなりでまとめてからコミットメッセージ入力窓でも出してから本来の作業用ブランチにFFマージさせればおk
0040デフォルトの名無しさん (ササクッテロラ)垢版2017/02/23(木) 16:27:13.03ID:EPi8ln12p
>>39
ない

svnで運用された頭が痛くなるような履歴をgitに取り込むことはよくある
0041デフォルトの名無しさん (ササクッテロロ)垢版2017/02/23(木) 20:55:38.64ID:0FbQfq3Vp
チーム毎にgit使って、各チームの成果をインテグした時にsvn使う事はある
個人でgit、チームでsvnって構成はgitの美味しさの大部分を潰してるように見えるけど、想定してる規模が分からんし何とも言えんか
0042デフォルトの名無しさん (ワッチョイ)垢版2017/02/24(金) 14:06:29.60ID:STsv/yLm0
SHA1の衝突がGoogleによって公開、gitにも言及
https://shattered.it/

それに対するLinusの見解
http://marc.info/?l=git&;m=148787047422954
0046デフォルトの名無しさん (ワッチョイ)垢版2017/02/25(土) 10:54:33.01ID:xirdZVsB0
v2.12.0
0050デフォルトの名無しさん (ワッチョイ)垢版2017/03/01(水) 00:08:39.88ID:MSk4m/Wm0
ファイル数が20万〜30万個あるプロジェクトをgitで管理できる?
git statusすると20万〜30万の全部のファイルの更新日チェックするの?
0053デフォルトの名無しさん (オッペケ)垢版2017/03/01(水) 12:18:24.07ID:riQaWnbAr
俺も思った
0061デフォルトの名無しさん (ワッチョイ)垢版2017/03/02(木) 23:42:40.19ID:qpimcWgg0
使える人が使わないなら、それはいいんだよ。

能力不足で使えない(=無能すぎる)
会社のしがらみで使えない(=かわいそう)

あと使って見てないやつもダメだな
0063デフォルトの名無しさん (JP)垢版2017/03/03(金) 12:30:04.87ID:IUFykjWpH
篩に使うのはありか
0068デフォルトの名無しさん (ワッチョイ)垢版2017/03/04(土) 00:59:09.29ID:kf4torcY0
面倒臭いのでだいたい
git add .
git commit --amend -m "hoge"

で済ましてる
一通り終わったらgit commit --amendでコミットメッセージちゃんと書く
squashしなくてよい方法だよ
0070デフォルトの名無しさん (ワッチョイ)垢版2017/03/04(土) 11:03:44.63ID:fiOXClU60
git merge --abort
git rebase --abort

これいいよな。

svnとかだとやらかしてしまって中途半端な状態になって
これどうすりゃいいんだよってなってしまうけど、
gitだとたいてい--abortすればリセットできる
0071デフォルトの名無しさん (ワッチョイ)垢版2017/03/04(土) 14:23:44.15ID:GRvQ2lmz0
AにコミットしてA'
A'にコミットしてA''
になってるとき
A'をBに名前変えて
A->A''と
A->Bに分けることはできますか?
0073デフォルトの名無しさん (ワッチョイ)垢版2017/03/04(土) 17:15:35.10ID:GRvQ2lmz0
A->A''の方にはB(A')が無かったことにしたいのですが
0076デフォルトの名無しさん (スプッッ)垢版2017/03/04(土) 22:05:36.70ID:TK9n5Zigd
>>71
git branch B A'
をする
git rebase A -i
でA'の行を消す
0077デフォルトの名無しさん (ワッチョイ)垢版2017/03/06(月) 23:20:15.96ID:8UuxKa0s0
ディレクトリやファイルをマージするだけの作業だが、あまりに大量&1日あたりの作業時間があまり取れないため、1ヶ月ぐらいかかる見込み

こう言う場合って作業完了してからまとめてコミットすべき?
それともキリのいいところでコミットすべき?
0083デフォルトの名無しさん (ワッチョイ)垢版2017/03/07(火) 20:55:44.46ID:FdtwfqDL0
rebase怖いならブランチ切るなりタグつけるなりしてからrebaseすりゃいいじゃん
rebaseしたってコミットそのものが世界からすぐに消えるわけじゃないんだし
0084デフォルトの名無しさん (エーイモ)垢版2017/03/07(火) 22:48:44.65ID:6dT6PmkfE
git cloneで特定のタグから最新のコミットまでの範囲を取得する方法を教えてください
0085デフォルトの名無しさん (ワッチョイ)垢版2017/03/08(水) 00:28:53.24ID:bFUfM0140
> rebase怖いならブランチ切るなりタグつけるなりして

そのブランチやタグを作るのが面倒なバージョン管理ツールがありまして、
そのせいでブランチやタグを切るのが嫌なんですよ。
0088デフォルトの名無しさん (エーイモ)垢版2017/03/08(水) 18:56:28.23ID:tzSf6NwiE
(1)git checkout -b hoge コミットID1 でhogeブランチを作る
(2)masterブランチに戻る
(3)git branch -D hoge でhogeブランチを削除する
(4)git checkout -b hoge コミットID2 で異なるコミットのhogeブランチを作る

hogeブランチでは何かを編集したりするわけではないので
hogeブランチにいたまま別のコミットIDでhogeブランチを上書き?する方法ありませんか?
masterブランチに戻ってからhogeブランチを作りなおして新たに作るのが面倒くさいので
0090デフォルトの名無しさん (ワッチョイ)垢版2017/03/09(木) 06:48:45.74ID:fQxPjt/z0
>>88
コミットIDでcheckoutすりゃいいだけじゃね

(1)git checkout コミットID1
(2)git checkout コミットID2
0091デフォルトの名無しさん (スプッッ)垢版2017/03/09(木) 08:26:50.81ID:TQt2xuGKd
>>88
git reset --hardは、ブランチの付け先を簡単に操作できてしまうから、使う前にreflogの見方を覚えておくこと
0093デフォルトの名無しさん (エーイモ)垢版2017/03/09(木) 10:28:24.13ID:xGhx3aNSE
resetは困ります。。。。
checkoutでどうにかやる方法はないということでしょうか?
009488=93 (エーイモ)垢版2017/03/09(木) 10:29:17.80ID:xGhx3aNSE
ブランチは1個しか作りたくないんです
0095デフォルトの名無しさん (スプッッ)垢版2017/03/09(木) 12:31:57.97ID:TQt2xuGKd
>>93
じゃあ>>90で良いんじゃないの?
コミットは出来ないけど
009888=93 (エーイモ)垢版2017/03/09(木) 22:57:50.27ID:DwjAxR0kE
git checkout -b hoge
git reset --hard コミットid1
git reset --hard HEAD@{1}
masterブランチには何の影響もないですね
最新のコミットに戻るときにreflogで位置を確認するのが面倒くさそうです
これも覚えておきます

>>96
mergeだと古いコミットに戻ろうとした時にAlready up-to-date.って表示されてしまいました
0099デフォルトの名無しさん (ワッチョイ)垢版2017/03/09(木) 23:15:12.39ID:x6aOWZGA0
hogeにはすでにコミット1やコミット2が含まれてる場合もあって
その場合はそれ以降のコミットを捨てた状態にしたいってことなの!?
用途が謎
0100デフォルトの名無しさん (ワッチョイ)垢版2017/03/10(金) 03:45:25.28ID:V4zus/a90
>>98
ブランチは1個しか作りたくない理由がわからないから、それだったらID1とID2に別のブランチを付けたら良いんじゃない?って思っちゃうんだけど
何で作りたくないんですか?
0103デフォルトの名無しさん (ワッチョイ)垢版2017/03/10(金) 21:15:08.71ID:mGr7V+b80
みんなってさ、ステージングしているファイルから行単位とかでコミットしたり
する機能使ってる?

俺はファイル単位でしかコミットとかしないんだけどさ、そもそもステージング
してるところから行単位でまた編集するようなもんだから、テスト通るかわからなく
なるわけだし、あんまり積極的に使うもんじゃないよね。

あとdiffの結果画面の見方が今ひとつ苦手w
0108デフォルトの名無しさん (ワッチョイ)垢版2017/03/10(金) 22:51:42.82ID:mJMnK6Gx0
俺もよく使うな。

gitの便利さっていうのは現実的な問題を解決してることにあると思っていて、
理想は最初に計画を立てて間違えることなく作業をすることだけど
現実にはいろんな細かい修正を忘れたり分けるべき修正を一緒にやってしまったりするでしょ?

そういう時に俺は、いま修正している中で、特定の部分だけgit add -pつかって
一つのコミットにして、あとの分は別コミットにして、
テストは後から書いてrebaseしてまとめるとかやるよ。

他の人が理解・レビューしやすい並びのコミットと、
実際の開発順っていうのは必ずしも一致しないからさ
0116デフォルトの名無しさん (ワッチョイ)垢版2017/03/11(土) 14:17:42.96ID:qqD7bP3W0
試行錯誤のあととかノイズでしかないからな。
そんなものを大事に抱えていても、コードリーディングの
じゃまになるだけで意味が全くない。
快適な開発をするときに役立つコマンドがgitには多く搭載されている
0120デフォルトの名無しさん (ワントンキン)垢版2017/03/14(火) 16:00:30.11ID:E+FUCYqdM
ファイルのタイムスタンプまで元に戻せるバージョン管理ツールってないの?
0124デフォルトの名無しさん (ワントンキン)垢版2017/03/14(火) 20:00:39.69ID:gPjrDEpaM
もしそんなVCSがあるならmakeとかまともに動かなくて限られた用途にしか使い物にならんだろうなぁ
0127デフォルトの名無しさん (スプッッ)垢版2017/03/14(火) 22:06:05.44ID:U+Sav0FRd
>>123
コミットフックで全ファイルのタイムスタンプを記録しておけば戻せるよ
0129デフォルトの名無しさん (ワッチョイ)垢版2017/03/15(水) 01:16:30.21ID:GKUdhRYR0
タイムスタンプは変えないでオリジナルのまま元に戻せるような機能は需要ありそうなのになんで最初から実装されてないの?
タイムスタンプはOSごとのローカルな仕様っぽいのでGit本体には入れなくないってこと?
0130デフォルトの名無しさん (ワッチョイ)垢版2017/03/15(水) 01:23:09.75ID:1ghxI2bb0
全く欲しいと思ったことが無いけど何に使うの?
0134デフォルトの名無しさん (ワッチョイ)垢版2017/03/15(水) 07:44:08.96ID:1ghxI2bb0
>>131
今時そんな事してる現場なんてあるわけないじゃん?
0135デフォルトの名無しさん (ワッチョイ)垢版2017/03/15(水) 08:18:02.75ID:WjEGzhMP0
>>129
記録したいのはファイルがいつ修正されたかではなくて
ファイルの行がいつ修正されたかだから。

ファイルの日付どころか行単位で
修正日時が記録されているので必要ない
0136デフォルトの名無しさん (ワッチョイ)垢版2017/03/15(水) 08:32:23.84ID:WjEGzhMP0
>>133
> Gitにない機能は闇呼ばわりのGit真理教の方ですねわかります

Aというブランチでファイルを追加します。
Aブランチから派生したBというブランチでそのファイルを修正します。
Bというブランチでコンパイルしてオブジェクトファイルを作ります。
Aというブランチに戻ります。

Bというブランチでコンパイルしたオブジェクトファイルが残っています。
ファイルの日付はリポジトリに入れないのでAの方が更新日付が新しくなります
そのためコンパイルするとBのオブジェクトファイルは使用されません。
という素晴らしい仕組みはgitだけの特典だとでも?

あんたはどうしてもほしいの?
0138デフォルトの名無しさん (ワントンキン)垢版2017/03/15(水) 10:22:20.47ID:8jeOIUNnM
流れ見てるとGitはコミット時の日時にファイルのタイムスタンプが変えられることすら知らないで偉そうに答えている奴いるなw
所詮は℃素人の烏合の衆かw
0143デフォルトの名無しさん (ワッチョイ)垢版2017/03/15(水) 13:05:12.43ID:7YWEdixI0
>チェックアウトの度にタイムスタンプが書き換わっていたら

その時点で存在しないファイルとかチェックアウトの結果変更されるファイルのタイムスタンプの話なんですが
0145デフォルトの名無しさん (ワッチョイ)垢版2017/03/15(水) 16:57:44.56ID:1ghxI2bb0
>>133
で、何に使うの?
0148デフォルトの名無しさん (ワッチョイ)垢版2017/03/16(木) 09:06:14.81ID:jj6/8HdQ0
ユーザー視点ってなんだ?
バージョン管理ツールは開発者視点のものなんだが。

バージョン管理ツールができる以前から
makeはタイムスタンプを参照して更新されたものだけを
ビルド、リンクする。

checkoutしてブランチを切り替えてファイルが変わったら
当然ビルド、リンクしなきゃならないんだから、タイムスタンプは
新しくなくちゃいけないだろ。

バージョン管理ツールはバックアップツールじゃないんだぞ
開発者じゃないやつが使うものじゃない
0150デフォルトの名無しさん (ワンミングク)垢版2017/03/16(木) 11:09:03.98ID:WA6lSXVKM
それじゃ使いづらい場合もある、開発環境によってはコミットした時点にタイムスタンプ含めそっくり元のまま復元する機能もあると便利だな、というだけなのに、それを言うとgitの思想と違う、と信者は発狂する

上の流れを要約するとそういうこと
0151デフォルトの名無しさん (ワッチョイ)垢版2017/03/16(木) 11:18:06.56ID:F3E/ISVf0
>>150
誰も何に使うか挙げれてないのに?
0152デフォルトの名無しさん (ブーイモ)垢版2017/03/16(木) 11:50:16.25ID:aO6lZIizM
gitの操作によって更新されたファイルのタイムスタンプをユーザが参照出来ないとか、ユーザーにとって拷問じゃね?
0154デフォルトの名無しさん (オッペケ)垢版2017/03/16(木) 12:19:13.00ID:1l8QOGUAr
大体お前ら殆どペチパーだろw
そもそもビルドプロセスなんかねえじゃんw
0158デフォルトの名無しさん (JP)垢版2017/03/16(木) 14:37:48.23ID:tDvUwYEMH
でも、githubなんかのリポジトリブラウザでlast commitが一覧できるのは便利。
ファイルの更新具合が一目瞭然。
git cloneのデフォルト動作がlast commitを復元するのでいいとさえ思う。
0159デフォルトの名無しさん (JP)垢版2017/03/16(木) 14:42:25.18ID:tDvUwYEMH
タイムスタンプ頼りのビルドツールも、なんか進化してくれないかと思うね。
ビルドしたときのハッシュを保存しておいて、違ってたらビルド(コンパイル)対象にするとか。
0160デフォルトの名無しさん (ワントンキン)垢版2017/03/16(木) 14:57:26.15ID:1IuM6Iv2M
>>159
遅くなるだろ。何のためにタイムスタンプ単純比較してると思ってるんだ。
0161デフォルトの名無しさん (JP)垢版2017/03/16(木) 15:21:13.16ID:tDvUwYEMH
>>160
> 遅くなるだろ
そうでもない。

243ファイル10万行のハッシュ値計算:
$ ls *.[ch] | wc -l
243

$ wc -l *.[ch]
102429 合計

$ time md5sum *.[ch] > /dev/null
real 0m0.014s
user 0m0.008s
sys 0m0.006s
0162デフォルトの名無しさん (ワンミングク)垢版2017/03/16(木) 15:57:58.78ID:qLAiRgHgM
Git真理教信者はGitはとにかく正しいのだという盲信から発言するから、自分とは違ったニーズを持つ他者がいるという想像もできないし、そもそもエビデンスを出しての議論ができないんだよなあ
口汚く罵るだけで
0163デフォルトの名無しさん (ワッチョイ)垢版2017/03/16(木) 18:08:47.10ID:Xe646fvV0
>>150
初心者はとまどうのかもしれないが
慣れたら問題ないことに気付く

どうせ秀丸でも使ってるんだろ
0164デフォルトの名無しさん (ワッチョイ)垢版2017/03/16(木) 18:35:50.30ID:Ko8IVZtl0
hookで実現する方法はあるし、必要ならそれを使えばいいだけだと思うんだがどうしてその機能がデフォルトで用意されてないだけでそこまで喚くのかわからない
0165デフォルトの名無しさん (ワッチョイ)垢版2017/03/16(木) 18:40:51.93ID:6u/sVXZC0
>>164
わからなければ参加しなくてもいいんですよw
0166デフォルトの名無しさん (ワンミングク)垢版2017/03/16(木) 18:45:10.48ID:DHYgGwbjM
公式のgit guiもネイティブのwindowsソフトのくせに日本語含んだディレクトリ名とか未だにダメダメだな
この時代に他言語対応がここまでダメなメジャーなソフトも珍しいんじゃね?
0167デフォルトの名無しさん (ワッチョイ)垢版2017/03/16(木) 19:10:46.07ID:Xe646fvV0
git for windows ならいける
0168デフォルトの名無しさん (ワンミングク)垢版2017/03/16(木) 19:14:58.70ID:Zmwuwj98M
>>166
まったく珍しくないけど。
ユーザー名に日本語含めないようにするというバッドノウハウが広まってるのがいい証拠
0170デフォルトの名無しさん (ワッチョイ)垢版2017/03/16(木) 19:42:09.30ID:6u/sVXZC0
>>169
少しは文句ばっかり言われる自分を省みてみたらw
0172デフォルトの名無しさん (ササクッテロロ)垢版2017/03/16(木) 23:09:13.57ID:6N+4it80p
結局何に使うかも分からんような機能をネタに信者だなんだと煽って構って欲しかっただけ?
煽るにしたってgitに取って代わるようなツールを挙げてくれないと面白くないんだけど
0174デフォルトの名無しさん (ワッチョイ)垢版2017/03/16(木) 23:50:24.62ID:EaMVfj+z0
>>150
> それじゃ使いづらい場合もある、開発環境によってはコミットした時点にタイムスタンプ含め
> そっくり元のまま復元する機能もあると便利だな、というだけなのに、それを言うとgitの思想と違う、と信者は発狂する

gitの思想じゃない。ソフトウェア開発の思想。
最新のタイムスタンプのものだけビルドするという考え方は
gitができるよりはるか昔からのやり方

gitを使うことでソフトウェア開発がしづらくなったら
本末転倒だろ?
0175デフォルトの名無しさん (ワッチョイ)垢版2017/03/16(木) 23:59:09.02ID:6u/sVXZC0
>>174
gitしか知らないぺーぺーのひよっ子が面白い事言うなw
お前センスねえわw
0176デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 00:01:17.52ID:KqZX+Igl0
そもそも
>gitの思想と違う
なんて発言は誰もしてないのに、さもそんな発言があって、それが共通認識であるかのように語る

病気ですね
0177デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 00:07:16.69ID:lgb+n3WO0
>>175
svnも知ってるが?

svnを使っているときからsvnはだめだと理解していた。
gitを知った(がまだ使えない)ときから、俺が欲しかったのはgitだと理解できた。

svnはすごく開発しづらかった。なにせ間違いが許されないから。
人間だから間違いはかならずある。svnだと間違いが許されなかったから
仕事を一旦片付けて(コミットして)落ち着いて確認するという作業ができなかった。

間違いは間違いのまま残り、意味のないコードを他の人にレビューさせるのが
すごく無駄に感じた。それが解消されたのでgitはすごくストレスフリーだよ。
0178デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 00:11:39.15ID:HumUZXIf0
>>177
いや知らねえよお前はw
それどこのインターネッツで拾ってきたgit神話だよw
0180デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 00:23:50.09ID:HumUZXIf0
>>179
それはこっちのセリフだよwぺーぺーのひよっ子クンw
0182デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 00:33:43.21ID:RKn5d9hw0
>>161
例えばGoogle Chromeとか1000万行以上、ファイル数も数万個あるんだよなぁ、そこまで大きなプロジェクトはあまり無いだろうけどさ。
ハッシュをDBか何かにファイルパスのようなuniqueな値と合わせて書き込まなきゃならないだろうし、画像などのリソースを固めるなら大きめのファイルのハッシュも計算しなけらばならないだろう。そのベンチマークはちょっと見通し甘いと思う。
0183デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 00:34:13.23ID:HumUZXIf0
>>181
なんだよもう諦めたのかw
俺はもっと笑いたいんだけどなw
もっと聞かせてくれよぅ
ひよっ子クンのソフトウェアなんとかwの思想w
0185デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 01:35:25.41ID:g7c8SdZF0
>>174
なんかよくわからんけど、例えば一年前にコミットしたmakeファイル含むビルド環境一式があって、
それを再現したいとき、オプションでタイムスタンプも含めてぜんぶそのときの環境が再現される
オプションがあればそれはそれで便利じゃないの?
0186デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 01:45:34.43ID:RKn5d9hw0
>>185
だから何が便利なの?
タイムスタンプを再現して何が嬉しいの?
標準に入れろっていうくらいなんだから大多数が納得するようなメリットを示せるはずだよね?
それがこのスレで一つも出てきてないんだけど
0187デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 01:50:24.59ID:KqZX+Igl0
>>185
>それを再現したいとき
それってどんな時?ってのが行き着くところだと思うよ
上の方でもちらほら出てるけど、必要なら実装すれば良いし、必要だと思う人が多ければ標準の機能として組み込まれるでしょ
0188デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 02:44:39.70ID:lgb+n3WO0
>>185
日付が戻るのはソースファイルだけ。
そのソースファイルを使ってコンパイルすると
オブジェクトファイルができる。
"現在の日付の"オブジェクトファイルができる。

その"現在の日付の"オブジェクトファイルをリンクして
"現在の日付の"実行ファイルができる。

出来上がるのは現在の日付のファイルばっかり

で、なんか言った?
0189デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 03:08:37.61ID:gNJfFjGV0
まぁ git checkout でブランチ変えるたびに make clean なりでキレイサッパリにするならタイムスタンプ復元しても問題は生じないだろうな

タイムスタンプを復元して何が嬉しいのか良く分からないけど
(ファイルに変更を加えた日を知りたいだけなら適切にコミットしてたらファイルに手を加えた日とコミットした日に大きな違いはないだろうから確認に困るってことはないし)

git以外の何らかの管理ツールがタイムスタンプで何らかの整合性を保っててその管理ツールのデータファイルもgitリポジトリに一緒に突っ込んでるとかかなあ?
0190デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 03:38:39.20ID:RKn5d9hw0
>>189
そんなありそうもない例出さなくても標準で入れるべきと主張する人が素晴らしく便利な例出してくれるでしょ。
焦らしプレイが好きみたいだけど気長に待とうぜ。
0191デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 03:47:35.77ID:lgb+n3WO0
普通に考えて日付が違っていてもコンパイルすれば
同じ実行ファイルができるべきである。

でないと、ファイルを保存し直しただけで
違う物ができることになってしまう
0197デフォルトの名無しさん (JP)垢版2017/03/17(金) 11:36:42.96ID:hpHy/rBLH
>>182
まぁ、ファイル数が1000未満、行数が100万行未満くらいだったら実用になるとおもうんだけど、どうだろう。
毎回全部のハッシュを計算する必要はなくて、まずはタイムスタンプで比較して違ったらハッシュでチェック。
そうすれば、「変更はないがタイムスタンプだけ異なる」ファイルのコンパイルが不要になる。

つか、書いてて思ったんだけど、そういうビルドツール既に存在するんじゃ?
0198デフォルトの名無しさん (JP)垢版2017/03/17(金) 12:07:10.25ID:ol/nseXLH
>>189
秀丸ですねわかります
0199デフォルトの名無しさん (JP)垢版2017/03/17(金) 12:08:06.93ID:ol/nseXLH
>>195
それは永遠にないわ
0203デフォルトの名無しさん (エーイモ)垢版2017/03/17(金) 20:33:35.90ID:vzlc7+0GE
プロジェクトを作り直してコードもファイル構成も全部作り直す場合は
gitでブランチを作成して底で作業するか、別のディレクトリを作成してそこで作業するかどっちがいいでしょうか?
0204デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 20:46:01.32ID:lgb+n3WO0
>>200
ああ、アイツだろ? 名前忘れたけど
あとでTwitterとかで馬鹿にされまくってて
アカウント削除して逃げちゃったやつ

>>202
> なんだライナスも悪い仕様ってみとめてんだ
ライナスのことじゃないよw
0205デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 20:51:50.50ID:lgb+n3WO0
リーナスは「なんでお前、タイムスタンプを戻すのが間違ってるってわかんねーの?馬鹿なの?」って
煽ってるしなw


Linus Torvalds
https://web.archive.org/web/20120701070035/http://kerneltrap.org/mailarchive/git/2007/3/5/240530
> But Bill, don't you realize that restoring the timestamp is *WRONG*?



スレトップ
https://web.archive.org/web/20120518150852/http://kerneltrap.org/mailarchive/git/2007/3/5/240536
0207デフォルトの名無しさん (ワントンキン)垢版2017/03/17(金) 21:53:41.23ID:BNQrAo9GM
調べてみるとvsもcsvもsubversionも当然のようにタイムスタンプ復活できるんだな
リーナスの手を離れたわけだしメンテやってるあの人もそんな当たり前の機能はとっとと実装して欲しいもの
0208デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 22:09:18.47ID:lgb+n3WO0
つまりgitは進化したってことだな(爆笑)

はいはい、なんでsubversionでタイムスタンプ復活させるのが
間違ったやり方だって言われていてデフォルトオフなのか考えてみましょうか
0211デフォルトの名無しさん (ワッチョイ)垢版2017/03/17(金) 23:07:30.79ID:RKn5d9hw0
>>207
焦らしてないで教えてよ。何に使うの?
0215デフォルトの名無しさん (ワッチョイ)垢版2017/03/18(土) 00:14:57.35ID:ux+WuUO90
Linusが言ったとデマ飛ばして、それを否定したら >>213 コレ
議論したいやつには全く見えない
0217デフォルトの名無しさん (ワッチョイ)垢版2017/03/18(土) 00:19:04.49ID:zaoPrLbB0
>>167
>git for windows ならいける

そういやこれ試してみたがちゃんと日本語ディレクトリや空白いりディレクトリでもちゃんと動作するな。
なんで公式のGUIツールはあんなクソがいつまでもほったらかしなんだ?
メンテナの出来が悪いのか?
0218デフォルトの名無しさん (ワッチョイ)垢版2017/03/18(土) 00:19:13.30ID:ux+WuUO90
>>216
>>202
0219デフォルトの名無しさん (ワッチョイ)垢版2017/03/18(土) 00:33:25.67ID:ux+WuUO90
>>217
彼らにとってWindows版が必要ないからかな
0221デフォルトの名無しさん (ワッチョイ)垢版2017/03/19(日) 03:20:17.16ID:awlj00/Y0
>>203
新しいリポジトリ作るほうがいいと俺個人は思う
0222デフォルトの名無しさん (ワッチョイ)垢版2017/03/19(日) 13:22:53.84ID:mGXfpPMY0
gitでコードを管理している分にはタイムスタンプを戻すのは愚策だと思う
(Linusもそこはハッキリ言っている)

コード以外のファイルを管理するならタイムスタンプを戻せるようにすべきだし
cvsやsvnは実際に戻せる仕様になっている

要するにgitではソースコード以外は管理できないし、させたくもない
(Linusはこれもはっきり言っている)
だからタイムスタンプも戻さない
0223デフォルトの名無しさん (ワッチョイ)垢版2017/03/19(日) 13:31:01.38ID:Ua2nNRR50
ExcelとかビットマップまでGitで管理しようと主張するマヌケが会社にいて困るわ。
適材適所ってことがわからなくて、なんでもGitが優れていると盲信してる。
0224デフォルトの名無しさん (アウアウアー)垢版2017/03/19(日) 14:04:20.89ID:mYROXWJoa
>>223
おかしくないけど?
0225デフォルトの名無しさん (アウアウアー)垢版2017/03/19(日) 14:06:20.27ID:mYROXWJoa
>>223
決めの問題だからそう決めたなら、Gitで管理すればいい。成果物によって数ヶ所に置き分けないといけないよりまし。
0226デフォルトの名無しさん (ワッチョイ)垢版2017/03/19(日) 16:31:47.33ID:mGXfpPMY0
>>224
決めの問題ならなおのこと 決めたやつがおかしい という話では

実際のところ、テキストベースではないドキュメントの管理は
gitでやる価値が半減すると思う
もちろんcvsやsvnでもあまり意味はないけど
0228デフォルトの名無しさん (JP)垢版2017/03/19(日) 17:10:53.15ID:zGHcaEctH
節目節目のあるリリースに関連付けられた形での
重要なデータとかテストデータとかをコミットに加えるのはありでしょ
0231デフォルトの名無しさん (ワッチョイ)垢版2017/03/19(日) 18:52:47.95ID:GmJCDs4Q0
diffが取れない程度でべつにエクセルのファイルを管理してもいいと思うけどね。
向かないとかいっても 20170319-hogehoge.xls みたいなファイルが山盛りよりはいいと思うな。
0233デフォルトの名無しさん (ワッチョイ)垢版2017/03/19(日) 19:30:28.68ID:nRqPseDT0
実質的にタイムスタンプ復元する方法が提示されて終わりじゃない?まともなフォーラムなら

どんなケースでどんな機能を求めてて何を試してみたかを全く明らかにしようとしないまま機能が足りないって喚いてるだけだからなぁ
建設的な議論にならないよね。
0236デフォルトの名無しさん (ワッチョイ)垢版2017/03/19(日) 21:16:00.33ID:s3dEl3fs0
>>234
Gitはタイムスタンプなんて保存してねえよって回答もあって、けっこう高評価ついてて笑うw
0241デフォルトの名無しさん (ワッチョイ)垢版2017/03/20(月) 09:41:20.76ID:MXp+WHcu0
そういや最近TortoiseSVNでexcelやwordファイルのdiff見たら、Office自体の
変更差分表示機能使ってくれて驚いた。
gitはコマンドラインでしか使わないから知らないが、どうなんだろう。
0242デフォルトの名無しさん (アウアウアー)垢版2017/03/20(月) 13:11:24.09ID:ioazcijZa
>>241
あのさ、差分機能で更新箇所を確認するのは仕事のやり方としては下策で、仕方なくやるものなんだけどな。
0245デフォルトの名無しさん (ワッチョイ)垢版2017/03/20(月) 14:42:33.04ID:nkICAmgQ0
プログラミングにかかわらずドキュメントの類は差分ベースで仕事を進めることで効率が著しく向上する
これに気がついてない日本のホワイトカラーの現場はほんとヤバイ
0246デフォルトの名無しさん (ワッチョイ)垢版2017/03/20(月) 14:45:08.86ID:NCsVeUw30
オイまた拗らしちゃったのが出てきたぜw
0247デフォルトの名無しさん (ワッチョイ)垢版2017/03/20(月) 14:52:58.33ID:+YHRRlIg0
Excel仕様書なんか捨ててMarkdownとかで書いた方がいいこと多いよね
軽いし差分比較も見やすいし
0248デフォルトの名無しさん (アウアウアー)垢版2017/03/20(月) 14:59:20.46ID:ioazcijZa
おまえらどこをどう変えたのか毎回忘れて差分比較して仕事してんのかよw
0249デフォルトの名無しさん (ワッチョイ)垢版2017/03/20(月) 15:05:10.03ID:+YHRRlIg0
>>248
お前の所は作った本人しかドキュメント読まないのか?
0250デフォルトの名無しさん (ワッチョイ)垢版2017/03/20(月) 15:05:18.55ID:nkICAmgQ0
わざと忘れたりするわけじゃないが
最近は差分を積み上げてくような感じで仕事をしてる
できうる限りそれで進めて、どうしようもない時だけ時間をかけて全体を見る
0252デフォルトの名無しさん (アウアウアー)垢版2017/03/20(月) 15:28:42.55ID:ioazcijZa
レベルが低すぎて話にならん
0258デフォルトの名無しさん (ブーイモ)垢版2017/03/20(月) 17:31:37.67ID:IH4X2rRzM
もうgit以外を使ってるのは普通じゃない
特殊な事情
0259デフォルトの名無しさん (アウアウアー)垢版2017/03/20(月) 17:37:45.35ID:ioazcijZa
>>255
おまえのことなど知らない
0260デフォルトの名無しさん (ワッチョイ)垢版2017/03/20(月) 17:47:53.18ID:nkICAmgQ0
>>259
で、gitのことはどう思ってるの?
差分を編集する機能を重視してるのがgitなんだけど
差分機能で更新箇所を確認するのが下策だと思ってる人はこれを受け入れちゃうわけ?
0261デフォルトの名無しさん (ワッチョイ)垢版2017/03/20(月) 17:58:26.24ID:j9IxIyz40
>>260
gitやその他vcsのことを何もわからずに煽ってるだけなんだから、
そんなに難しい質問してやるなよ。無視するしかなくなるだろ。
0263デフォルトの名無しさん (エムゾネ)垢版2017/03/20(月) 19:09:27.54ID:CYCZfEErF
>>237
亀はだめ
Explorereが劇重になる
0264デフォルトの名無しさん (ワッチョイ)垢版2017/03/20(月) 19:50:34.58ID:KXLYvEOG0
>>258
新しいプロジェクトに配属されて、バージョン管理がSVNだったらガッカリするからな
0265デフォルトの名無しさん (ワッチョイ)垢版2017/03/20(月) 21:52:06.09ID:qIiVvRhT0
>>236
> Gitはタイムスタンプなんて保存してねえよって回答もあって、けっこう高評価ついてて笑うw
ファイルのタイムスタンプだろ?
保存してないよ。

嘘だと思うのなら、ファイルを修正してから次の日にコミットしてみ
ファイルのタイムスタンプじゃないものが保存されるから
0267デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 00:33:18.86ID:9goWKttg0
>>260
Office製品の変更履歴機能の失敗も知らない世代なのか?
0270デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 00:55:25.33ID:KGQ11aI90
バイナリファイル系は適切なツールを使えば
差分を知ることはできるが、
差分を知る以上のことはできない。

例えばcherry-pickとかmergeとかね

ただsvnとかでバックアップツールとしか
見てなかったやつは、そもそもmergeとかいう概念がないから
差分だけわかればいいと勘違いしてしまう。

それじゃプログラマとはいえない。
0271デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 01:17:05.94ID:VJPcfHdS0
officeのドキュメントを差分管理ベースで作業できるようにするなら
ドキュメントの中の要素を個別に差分取って管理できるようにならないとダメだろうなあ

アプリのソースが一つのファイルにすべて書かれてて、
それをgitで管理しろとか言われたら気が狂うw
0277デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 02:16:22.53ID:VJPcfHdS0
>>275
少なくとも、差分を見ただけでどの章のどこが更新されたかが分からないとつらいかな
ドキュメント全体をひとつのxmlで管理するなら
そういう機能をもった差分ビューワが必要になると思う
0280デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 03:53:28.35ID:vLQCNfD00
>>275
差分見えてもmergeはconflictの山になって事実上無理ぽそう。
0283デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 09:41:34.15ID:KGQ11aI90
>>275
> それでもXMLだから差分は一目瞭然かなと

え? お前OfficeのXMLのタグを知ってるの?
XMLのタグを知っていないと、差分は分かっても
その意味はわからないよね?

>>280
> 差分見えてもmergeはconflictの山になって事実上無理ぽそう。

XMLのタグの整合性、つまり閉じタグの対応まで
ちゃんとやらないとだめだからねw
タグの意味、属性、誰か解説してる人いる?
0284デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 09:46:31.05ID:dDb6xsPz0
Excelファイルのバージョン管理なんて実質タイムスタンプで管理するしかないのに、とにかくGit真理教の信者は
なにかテキストファイルレベルでの差分での管理が実用的みたいなウソを垂れ流す
0285デフォルトの名無しさん (ササクッテロル)垢版2017/03/21(火) 09:56:27.64ID:e/VBfIvSp
gitがバイナリに弱いのは誰もが認める話だと思うけど、タイムスタンプで管理するのは無くない?
svnとか他のバージョン管理システムってタイムスタンプ見て管理なんかしてたっけ?
0286デフォルトの名無しさん (スプッッ)垢版2017/03/21(火) 10:41:32.81ID:CAHXK6Wdd
>>270
適切な扱いが出来るかはそのバイナリファイルを扱うソフトウェア次第
3wayマージが出来るならgitの機能は全部使えるだろう
0287デフォルトの名無しさん (スプッッ)垢版2017/03/21(火) 10:47:26.85ID:CAHXK6Wdd
>>285
gitがじゃなく、汎用バージョン管理システム全般が、個々のファイル仕様に独自に対応しなければならないファイルに弱い
というより、テキストファイルのシーケンシャル性と改行で意味分割する仕様が特別汎用性に優れてるだけ
gitはエディタも差分表示もマージツールもファイル属性に応じた外部ツールを使用出来るようになってるから、まだそういう仕様が不明なファイルに強いと言える
gitが弱いのはバイナリファイルではなくサイズが巨大なファイル
たとえテキストファイルでも1ファイル1Gとかになると扱い辛い事になるはず
0288デフォルトの名無しさん (エムゾネ)垢版2017/03/21(火) 10:56:57.56ID:2pW378OvF
>>284
excelは標準では同じファイル名のファイルを同時に複数開けないし開いただけでタイムスタンプが変わるから、ファイル名でバージョン管理するのが基本だと思うけど
どうやってタイムスタンプでバージョン管理するんだ?
0289デフォルトの名無しさん (エムゾネ)垢版2017/03/21(火) 14:58:44.05ID:6WWBsw/3F
>>265
どうでもいいけどファイルのタイムスタンプを保存している(する必要がある)なら
ファイルの中身を変更せずにファイルの日付だけ変更してコミットしたときに
何も変更されてねーコミットスルーしよーぜってのがgit
それもファイルの変更とみなしてコミットするのはあほ
0290デフォルトの名無しさん (エーイモ)垢版2017/03/21(火) 16:43:16.40ID:RUBeb/rgE
指定した範囲のコミットログを表示する方法を教えてください

例えばhttps://github.com/git/git/releasesなら
タグv2.11.1からv2.10.0の間のログのみgit logで表示したい
タグがダメならコミットIDで指定でも構いません指定した範囲のログさえ取れれば
0291デフォルトの名無しさん (ブーイモ)垢版2017/03/21(火) 16:52:15.37ID:vbOnldibM
てんてん
0292デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 20:49:02.70ID:KGQ11aI90
>>284
> なにかテキストファイルレベルでの差分での管理が実用的みたいなウソを垂れ流す

差分での管理なんて一言も言ってないけど、
ソースコードであればテキストファイルで管理するのが
一番実用的だ。これは本当。

ソースコードがテキストファイルでないものがあるが
(例えばExcelなどの埋め込みVBScript)
見事に管理しづらい。
0293デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 20:52:20.32ID:KGQ11aI90
>>289
何を言ってるのか全くわからない。

コミットの日付とファイルの日付(タイムスタンプ)は本質的に違うものであって
gitが記録しているのはコミットの日付であって
タイムスタンプじゃないといったのが理解できなかったの?

コミットの日付を記録するんだから、ファイルに変更がなくコミット自体が発生しなければ
当然コミットの日付は記録されんよ。当たり前だよ。
0294デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 20:56:22.17ID:KGQ11aI90
>>288
> どうやってタイムスタンプでバージョン管理するんだ?

ここで>>284に言ってほしい言葉は、

「タイムスタンプが新しい方を最新バージョンとみなすべきだ。
たとえ古いファイルを間違って修正した結果、新しい日付になった場合でも
AさんとBさんがそれぞれ違うシートを修正したとしてもだ!」

って(間抜けな)言葉だねw
0298デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 21:30:32.46ID:KGQ11aI90
>>297
それじゃファイルの管理しか出来ないじゃんw
どうやってアプリのバージョンの管理をするんだよw

新しいバージョンへ追加する機能をマージしていくのが
バージョン管理というものなのに
0299デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 21:38:19.51ID:YgRGY1SP0
せっかくのボケに対してマジレスしてどうする。
「それはSVNやんかー」と正しく拾ってあげんか。
0305デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 22:35:23.92ID:3G08meY40
v2.12.1
0306デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 22:53:46.86ID:3WUWYr7R0
>>304
SVNディスってんの?
0307デフォルトの名無しさん (ブーイモ)垢版2017/03/21(火) 23:35:33.90ID:vbOnldibM
svnは駆逐された
0308デフォルトの名無しさん (ワッチョイ)垢版2017/03/21(火) 23:55:56.28ID:eniBTwk40
svnはバックアップツール的な役割で当分生き続けると思う
ソースコード管理としてのsvnはもう見たくない
あとVSSとかいうゴミが未だに生き残ってるのはうちの会社だけであってくれ
0316デフォルトの名無しさん (ワッチョイ)垢版2017/03/23(木) 20:40:47.51ID:xoR/oCcH0
リーナスの最大の功績はlinuxではないrebaseなのだ
おかげでバカがrebaseに夢中になっている間にスムーズに仕事が終えられる
0320デフォルトの名無しさん (ワッチョイ)垢版2017/03/24(金) 00:05:33.87ID:pHNq00OZ0
道具は使うためにあるんだよ
0324デフォルトの名無しさん (オッペケ)垢版2017/03/24(金) 12:23:45.71ID:+6lNlTOdr
gitに限らずコイツらの布教活動が成功したためしなどただの一度もないけどなw
0325デフォルトの名無しさん (ワッチョイ)垢版2017/03/24(金) 12:52:55.54ID:lapEt7PI0
>>323
自分がいいと思ってる、使っているものが正しいという阿呆がなんにでもある。
0326デフォルトの名無しさん (ワッチョイ)垢版2017/03/24(金) 14:23:13.53ID:pHNq00OZ0
世界を自分(たち)にとって都合の良い方向へ変えようとする活動が布教
変えてゆくためには相手を納得させるか騙すか強要するか
都合の良い部分は伝えるが都合の悪い部分は隠すか屁理屈か嘘で押し通す

布教行為を許してはならない
0328デフォルトの名無しさん (ワッチョイ)垢版2017/03/24(金) 15:38:22.82ID:lapEt7PI0
>>327
あっそ
0330デフォルトの名無しさん (ワッチョイ)垢版2017/03/24(金) 19:00:52.18ID:tPVQTU6p0
>>326
という布教
0331デフォルトの名無しさん (ワッチョイ)垢版2017/03/24(金) 19:01:20.67ID:tPVQTU6p0
>>329
gitスレで言うことかね
0337デフォルトの名無しさん (ワッチョイ)垢版2017/03/24(金) 21:33:44.74ID:hATCGDnU0
>>335
思わねーよ
0340デフォルトの名無しさん (ワッチョイ)垢版2017/03/26(日) 00:38:00.55ID:J8Vm0Xfq0
v2.12.2
0348デフォルトの名無しさん (ワッチョイ)垢版2017/03/26(日) 14:31:55.91ID:+VpcfeLe0
マージ失敗したらdropされずに残るので、やり直せる
マージ成功ならもう一回stash saveも出来る

万が一?pop後にファイルをresetしてもコンソールを閉じていなければdropしたコミットハッシュが残っているはず
億が一それも消しちゃってもfsckで到達不能なコミットを探せば復元可能
間違って消す方がむずい
0352デフォルトの名無しさん (ワッチョイ)垢版2017/03/26(日) 19:08:55.12ID:K0FPpjuZ0
東京電力の新会長に日立製作所の人間が就任
0357デフォルトの名無しさん (ワッチョイ)垢版2017/03/27(月) 08:45:42.95ID:DZ7KBqWQ0
インターネットみてると「マスターをチェックアウトして」とか
「マスターへチェックアウトして」とかいろいろな表現を見るけれど。
どれもマスターのブランチへ移動していることを示しているのがおかしくないですか?
今のブランチをチェックアウトしてマスターにチェックインするってことなんだから
前者はマスターから抜け出すことになるし、後者は意味不明になりますと思いませんか?
0359デフォルトの名無しさん (ササクッテロレ)垢版2017/03/27(月) 13:18:36.33ID:En3IMuBbp
自分がブランチに出たり入ったりするというのは斬新な見方だな。ホテルかよ。
リポジトリから指定のリビジョンのソースを(ブランチ・タグ・ハッシュ等で指定して)チェックアウトするんだよ。
後者は日本語に不自由なやつなだけだと思うが。
0360デフォルトの名無しさん (スッップ)垢版2017/03/27(月) 15:24:31.02ID:FTQE7C/md
>>359
後者は「マスターをチェクアウト」と「マスターブランチへ移動」が混ざったんじゃ無いかな?
0363デフォルトの名無しさん (ワッチョイ)垢版2017/03/27(月) 16:32:28.67ID:DZ7KBqWQ0
コンフィグのここで疑問なんだけど
[branch "master"]
remote = origin
merge = refs/heads/master
ここで、なぜmerge = origin/masterじゃなんですか?
branchマスターが追跡しているのはorigin/masterで
origin/masterが追跡しているのがrefs/heads/masterなので、
一段飛び越えていて変なんですけど。
0365デフォルトの名無しさん (ワッチョイ)垢版2017/03/27(月) 16:38:51.24ID:DZ7KBqWQ0
もしかしてrefs/heads/masterはローカルを指していて
デフォルトでmasterでpullすると別のブランチのところにmergeされるってこと?
それがなにの役に立つというの?
0368デフォルトの名無しさん (ワッチョイ)垢版2017/03/27(月) 17:41:44.24ID:DZ7KBqWQ0
refs/heads/masterはリモートを指してるらしい、
そしてpullで初めにfetchしたときにrefs/heads/masterがfetchしたなかにあると
refspecで調べてorigin/masterに変換して今のブランチにmergeするらしい
0369デフォルトの名無しさん (スッップ)垢版2017/03/27(月) 18:23:11.66ID:FTQE7C/md
>>368
refs/heads/masterが、masterという名前のブランチの正式表記で、originのリモートリポジトリの別名表記ってだけじゃないの?

tagにも同じ名前を付けられるからコンフィグは正式名称の方が都合がいいし、
リモートリポジトリは参照するサーバーやリポジトリパスが変わることもあるし、同時に同じリモート名は付けられないから別名表記の方が都合が良い
ってことだと思うけど。
0370デフォルトの名無しさん (ワッチョイ)垢版2017/03/27(月) 22:00:13.07ID:Kxi6Yxme0
ホテルから出ることをチェックアウトと言う

リポジトリという名のホテルに
masterブランチさんやdevelopブランチさんたちが宿泊してる
そこからチェックアウトして作業現場まで来てくださいって意味

git checkout master
0371デフォルトの名無しさん (ワントンキン)垢版2017/03/28(火) 15:27:51.25ID:p6rrPrRVM
SVCとかSubversionとかVSSだとリポジトリからファイルがチェックアウトされて
編集されたあとまたチェックインして元に戻る、というアナロジーが非常にわかりやすい
けど、Gitだとなんかいろんな路線に分岐してはまた合流、って感じが強くてなんか
あわない感じはあるよな。
流れのなかのある「状態」に戻したり勧めたりする感じというか。
もっとわかりやすい用語にできたのかもしれない。
0374デフォルトの名無しさん (スッップ)垢版2017/03/29(水) 10:39:27.69ID:kGZ0UAmTd
>>373
おっさんは色んな環境・用語に晒されてるから、VCSみたいな同じような機能にそれぞれのアプリケーションで別の用語を割り当てるシステムだと、ごっちゃになるんだよ
0376デフォルトの名無しさん (ササクッテロレ)垢版2017/03/29(水) 21:11:43.39ID:s7sfWWM2p
>371
そーかなー
むしろそういう風にコマンドを整理したのがsvnでリポジトリからローカルコピーを得る時しかcheckoutじゃないでしょ。

gitはチェックイン/チェックアウトシステム体系はCVSと変わらないからcheckoutするときはcheckoutで良いと思うんだが、ローカルの編集を破棄したいときこそresetだとかrevertとかにして欲しかったとは思う。
0377デフォルトの名無しさん (ワッチョイ)垢版2017/03/29(水) 21:25:18.43ID:G25OA3ZV0
>>375
実行権限のみ

いろんな人がいろんな環境でチェックアウトするのだから
グループやその他のパーミッションは記録する意味がないし、
umaskの設定に従えば十分

また自分自身がチェックアウト(=書き込む)ファイルなのだから、
リードオンリーにすることもできない。

よって実行権限のみ記録するのが
バージョン管理ソフトとして正しい仕様。
gitもそれに従っている。
0381デフォルトの名無しさん (ワッチョイ)垢版2017/03/30(木) 14:57:27.94ID:9EoNq1220
必死に覚えたんです
違うこと言わんといて
0383デフォルトの名無しさん (ワッチョイ)垢版2017/03/30(木) 16:27:53.68ID:9EoNq1220
小池知事のようなひとのことですね
0384デフォルトの名無しさん (ワッチョイ)垢版2017/03/30(木) 19:22:24.53ID:49bW4cFZ0
>>380
同意
明確に条件が限定された状況で、考え抜いた上に「正しい」とか言うのならわかるけど、バージョン管理なんてソフトウェアのソースコードに限ったとしても
ゲーム、組み込み、Web、業務システムで求めるものが全然違いそうなのはちょっと想像しただけでわかるのに、自分の知ってる範囲だけで決めつけちゃうのってダメだよね
お客さんの要求の本質を汲み取ろうとせず勝手に自分の都合で判断してそう
0385デフォルトの名無しさん (ワッチョイ)垢版2017/03/30(木) 20:53:52.29ID:gGp/SYAm0
>>378
> 所有者くらいは記録してほしかったよね

所有者とは? 会社名?w

一行ごとに誰が修正したかは記録されている。
その話をしていないということはお互い理解しているという前提で


なんのために所有者を記録するの?
0386デフォルトの名無しさん (ワッチョイ)垢版2017/03/30(木) 20:55:09.11ID:gGp/SYAm0
>>384
> ゲーム、組み込み、Web、業務システムで求めるものが全然違いそうなのはちょっと想像しただけでわかるのに

ぜんぜん違うと言うものの具体的な例を
君はこれから言わなくてはいけないということになったんだが、
できるかい?


それができるまでは、ゲーム、組み込み、Web、業務システムで
求めるものに違いはないという今までの常識通りでいくからさw
0388デフォルトの名無しさん (ワッチョイ)垢版2017/03/30(木) 21:22:01.52ID:4IqW3eML0
信者というとgitが如何わしい新興宗教みたいじゃないか
こういうのはストレートに馬鹿と呼んで欲しい
0396デフォルトの名無しさん (ワッチョイ)垢版2017/03/30(木) 22:25:03.07ID:gGp/SYAm0
なるほど。巨大なファイルは別のストレージで管理して、git cloneしたときなどに
フックでファイルが有る場所の情報からファイルを取ってくれば良いのか!
0409デフォルトの名無しさん (ワッチョイ)垢版2017/03/31(金) 11:39:17.86ID:xItn/dk+0
>>385
基本的に 可能な限りファイルの属性は記録してほしい ということ
タイムスタンプもそうだし、userやgroupもほしい
あとはスペシャルファイルのたぐいも
0410デフォルトの名無しさん (シャチーク)垢版2017/03/31(金) 15:48:59.13ID:QDrBRSUdC
GitLFSじゃあかんのか
0416デフォルトの名無しさん (ワッチョイ)垢版2017/04/01(土) 14:06:54.31ID:DrbHkd9R0
>>415
"バージョン"管理ソフトっていうのはファイルの版ではなくて
アプリのバージョンを管理するもので突き詰めるとソースコードを管理するものなんだよ。
ソースコードの管理というのはファイルの中の修正箇所を調べたり
一部分を抜き出したりマージすること、ソースコードエディタと言ってもいいぐらい

バイナリファイルであればそれらが出来ないので
どうあがいてもバージョン管理は出来ない
せいぜいファイル管理程度
0423デフォルトの名無しさん (ワッチョイ)垢版2017/04/01(土) 16:45:18.19ID:FRLTAWk80
ソースの版とリンクしてる
バイナリファイルの版をどう管理するのかってことじゃないのか?

バイナリしかないサードパーティライブラリとか画像系のアセットも普通gitで管理するよね?
デザイナ系の人が頻繁に編集するデカいファイルはGitLFSみたいな追加の仕組みを使うか
別のツールで管理してリリースバージョンのみgitに入れるかかな
0426デフォルトの名無しさん (ワッチョイ)垢版2017/04/01(土) 19:50:40.08ID:X5V6ETnn0
大きなバイナリファイルのバージョン管理が本当に必要ならべつにリポジトリに入れてもいいんじゃね?
単にリポジトリがでかくなるのが嫌われるだけで、他のsvn等に比べて特にgitが苦手というわけでもあるまい。
0433デフォルトの名無しさん (ワッチョイ)垢版2017/04/01(土) 21:17:50.96ID:9Eckjtd/0
>>432
ファイル名やディレクトリ名は最初に作ったまま固定変えたりしない。
ファイルサーバーは原則として追加するだけ。

そして新しいリソースに更新したければ、
ソースコードの設定ファイルをいじって、
参照するファイル名(ディレクトリ名)のパスを変更する
0438デフォルトの名無しさん (ワッチョイ)垢版2017/04/01(土) 22:13:07.12ID:Yf7QLaTq0
ソースコードはGitで管理して
ソースコードに関連するバイナリはファイルサーバに日付入りのディレクトリにおいて
新しいバイナリが追加されたらGitで管理してるソースコードにそのバイナリへの参照の更新をコミットする
こんなの普通にやるだろ
これとgit無しで全部日付入りフォルダで管理することの違いが判らないのは基地外
0439デフォルトの名無しさん (ワッチョイ)垢版2017/04/01(土) 22:23:18.84ID:9Eckjtd/0
>>436
> 結局ファイル名に日付入れて管理しろと言い出すわけだな。
> gitいらないじゃん。

だからバージョン管理システムは、ファイルの版ではなく、
ソースコードのバージョンを管理するものだから、
バイナリにはgitいらないって言ってる。
人の話聞けやw

gitはソースコードを管理するためのものだ
ソースコードじゃないものを管理するものじゃない。
巨大なバイナリファイルをいれんなw
0441デフォルトの名無しさん (ワッチョイ)垢版2017/04/01(土) 23:11:32.72ID:9Eckjtd/0
Git LFSは "別のツール" だぞw

それこそバイナリだけ別のファイルサーバーに格納するものだし、
単にファイル名とリンク先の対応を自動化したものにすぎない。
0446デフォルトの名無しさん (ワッチョイ)垢版2017/04/01(土) 23:51:27.66ID:PxbGeRPT0
>>441
バイナリは世代ごとにディレクトリを変えて保存し
ソースコードの設定ファイルをいじれという話はなんだったの?
Git LFSならそんな手間は不要でソースと同じように扱えるだろ。
まあGit LFSを使う事に異論がないなら他は重要ではないけど。

>>444
GitLabとGit LFSを使ってExcelなどのバイナリでできたドキュメントの世代管理をする
http://blog.naotaco.com/archives/1112
最初にバイナリ管理にしたい拡張子とLFSサーバを登録するだけで、
後はソースと同じgit コマンドで取り扱える。
0447デフォルトの名無しさん (ワッチョイ)垢版2017/04/01(土) 23:53:19.24ID:9Eckjtd/0
>>446
> バイナリは世代ごとにディレクトリを変えて保存し
> ソースコードの設定ファイルをいじれという話はなんだったの?

gitにバイナリファイルを入れないでバイナリファイルを使う方法の一つ
それを自動化したのがgit lfs
0449デフォルトの名無しさん (ワッチョイ)垢版2017/04/02(日) 00:11:50.86ID:n7h/bBRg0
>>448
バージョン管理ソフトでバイナリファイルを扱う意味がないということ
問題がないなら入れてもいいだろうが、それは単に入れるだけ。
バージョン管理は出来ない。
0451デフォルトの名無しさん (ワッチョイ)垢版2017/04/02(日) 01:05:11.30ID:n7h/bBRg0
>>450
> プロジェクトのリリースバージョンごとにバイナリを管理できて大いに価値がありますが

それは、リリースバージョンごとにバイナリをディレクトリに配置して
リポジトリに登録するという作業をやった場合の話だろう?

その作業とファイルのリンク先を変えるのとは手間は大して変わらんのだが?
0456デフォルトの名無しさん (ワッチョイ)垢版2017/04/02(日) 02:43:28.79ID:QfsJepDO0
>>439
ソースコードと不可分なリソースファイルだったとしても、「見た目がバイナリだから」バージョン管理ツールであるgitで管理する必要はないと言いたいのかな?
例えば、ゲームのマップデータのような独自フォーマットのリソースはパーサーと一緒に管理しないと意味が無いわけだが、「バイナリだから」入れる必要はないのかな?

逆に、自動生成された巨大なXMLは実際にはgitで管理しても実際にはdiffを確認したりマージしたりすることはできないけど、結局はバイナリデータのようにしか
取り扱えないと思うけど、「テキストだから」gitで管理する意味があるのかな?

「バージョン管理」と「差分確認、マージ」は完全に同一というわけではないし、バイナリだからできない、テキストだからできるってものでもないだろ。
0457デフォルトの名無しさん (ワッチョイ)垢版2017/04/02(日) 03:13:11.19ID:n7h/bBRg0
>>456
バージョン管理ソフトはソースコードを管理(=マージなど)するもので
それができないのなら入れる必要はない。
入れてもいいけど入れる必要はない。
大きいバイナリなど入れることで問題が起きるのなら
入れないほうが良い
0460デフォルトの名無しさん (ワッチョイ)垢版2017/04/02(日) 04:11:58.35ID:QBxgOhpS0
ファイルを管理するためにgitを使うんじゃなくて、
gitを使うためにソースコード入れてるだけの人だよね。
開発してるわけじゃないんだよ、git使ってるだけ。
0461デフォルトの名無しさん (ワッチョイ)垢版2017/04/02(日) 09:01:31.19ID:JR3Nnjmo0
>>383
>ファイルを管理するためにgitを使うんじゃなくて、
>gitを使うためにソースコード入れてるだけの人だよね。
>開発してるわけじゃないんだよ、git使ってるだけ。

こいつバカかw
0462デフォルトの名無しさん (ワッチョイ)垢版2017/04/02(日) 09:20:40.35ID:OSI/Jrn10
好きに使え。
ツールに振り回されてどうする。
バイナリ入れたきゃ入れればいい。
入れたくなければ入れなきゃいい。
ケースバイケース。
0464デフォルトの名無しさん (ワッチョイ)垢版2017/04/02(日) 10:31:19.75ID:QBxgOhpS0
プログラムに内蔵されるリソースの話をしてるのに、
バックアップツール使えとか、頭おかしいだろ。
頭の中身もgitで管理してみたらどうだろう?
0469デフォルトの名無しさん (ワッチョイ)垢版2017/04/02(日) 12:57:51.16ID:n7h/bBRg0
>>467
svnになれるってのがどういうことかわからない。
俺はsvn使っていたときから、間違ってコミットしたらどうするんだよ?
こんな多すぎるコミット他人がレビューできないだろ。
ネットワーク通信いちいち遅いだろ。リポジトリを新しく作るだけで
なんでこんなに手間かかるんだよって不満たらたらだったんだが
(当時gitなどの分散バージョン管理ソフトは知らなかった)

不便に慣れてしまったってこと?
0482デフォルトの名無しさん (ワッチョイ)垢版2017/04/03(月) 01:22:16.79ID:3+FtPzaJ0
>>472
「お前がそう思うんならそうなんだろう お前ん中ではな」っていうのを地で行くパターンだよなぁ
仕事で使ってるなら実際に困る案件で使わせてやりたいわ
0484デフォルトの名無しさん (スッップ)垢版2017/04/06(木) 12:09:08.04ID:30NnDzbWd
>>483
納品関係のタイムスタンプ重視の風潮と正反対だな
0485デフォルトの名無しさん (ワンミングク)垢版2017/04/06(木) 14:07:50.85ID:psfF7pjZM
>>484
何でそんな事重視してんの?
0486デフォルトの名無しさん (スッップ)垢版2017/04/06(木) 17:56:19.98ID:30NnDzbWd
>>485
知らん
誰もが意味ないよなと思いつつ、納品日に合わせて納品ドキュメントのタイムスタンプを合わせる
多分、何らかの儀式なんだと思う
0487デフォルトの名無しさん (ワッチョイ)垢版2017/04/06(木) 18:11:47.01ID:jz0x7tjm0
>>485
ファイルのタイムスタンプは基本的にファイルを編集した日になるから
納品日以降になっていたら誰かが編集しちゃったことが簡単にわかる。
納品物に.gitとかないしね
0489デフォルトの名無しさん (ワントンキン)垢版2017/04/06(木) 18:31:45.11ID:Ao1zg6OQM
>>487
タイムスタンプで編集されたことを検出しようとする事はとりあえずおいておくとして、それだったら別にcheckoutした日時で良くない?
0491デフォルトの名無しさん (スッップ)垢版2017/04/06(木) 19:47:39.07ID:30NnDzbWd
>>487
誰が編集したかどうかは、わからんよ
納品日は3/31であっても、その前に諸々のチェックが必要だから1週間前には納める
だが作業予定は3/31まで入ってるので、納品物の日付は3/31で作る
3/31の日付のファイルのタイムスタンプが3/24だと不自然なのでタイムスタンプを3/31に変えておく
タイムスタンプに手作業が入ってるので、日付が新しい方が最新とは限らない
0492デフォルトの名無しさん (ワッチョイ)垢版2017/04/06(木) 20:12:05.44ID:rNIgAdOn0
>>487
> 納品日以降になっていたら誰かが編集しちゃったことが簡単にわかる。

え? 悪意がある人にタイムスタンプを変更されたことないの?

バージョン管理ツールを使ってない時に、ウイルスチェックをした後に
ファイルの同じ日付をみたらウイルスチェックをする前だから
ウイルスチェックした後に修正されていません(=ウイルスに感染していません)と
OKだしたら実はウイルスに感染していて、大混乱が起きたんだが?

それ以降バージョン管理ツールを使ってソースの修正履歴を完全にトレースできるようにしている。
仮に誰かが感染したとしても、他の人と違いがあればマージとかで問題が発生してすぐに気づくことができる。
0494デフォルトの名無しさん (ワッチョイ)垢版2017/04/06(木) 20:38:48.35ID:rNIgAdOn0
>>493
1. 悪意がある人にファイル修正した後にタイムスタンプを戻された。
2. ファイルの更新日付が変わってないのにウイルスに感染していた。

これでわかる?
0500デフォルトの名無しさん (ワントンキン)垢版2017/04/06(木) 22:56:14.47ID:Ao1zg6OQM
>>499
素人にソースコードは納品するのに?
0504デフォルトの名無しさん (ワッチョイ)垢版2017/04/06(木) 23:12:28.97ID:rNIgAdOn0
タイムスタンプを信じとるんやー
タイムスタンプ見れば更新されてるかわかるんやー
タイムスタンプで比較する方法が確実なんやー

故にタイムスタンプは信頼できるから
タイムスタンプを正しく保持しないと信頼できん
0506デフォルトの名無しさん (ワッチョイ)垢版2017/04/06(木) 23:16:15.99ID:qKkC2hkg0
タイムスタンプ改ざんされて基礎された役人いなかったっけか
タイムスタンプそんなに重要っすか
0508デフォルトの名無しさん (ワッチョイ)垢版2017/04/06(木) 23:19:37.08ID:rNIgAdOn0
全てのプログラムは日付を不正に書き換えてはならない。

そうすれば、パソコンの時計を弄くらない限り
タイムスタンプは信用できる!
0515デフォルトの名無しさん (ワッチョイ)垢版2017/04/07(金) 15:45:59.17ID:E9+XPTIr0
>>510
ないよ 納品されるほうだから
受け取ったコードは自分たちでも管理するし
タイムスタンプなんて気にしたことない

そもそも相手が素人なら
タイムスタンプは簡単に改ざんできるから違う方法にしましょうって簡単に説得できる
お互いメリットがあるんだからそれをやらない・できない理由がわからないよ
0516デフォルトの名無しさん (ワッチョイ)垢版2017/04/07(金) 21:03:22.88ID:jauySInW0
>>515
流石に現実を知らなすぎ。
0517デフォルトの名無しさん (ワッチョイ)垢版2017/04/07(金) 21:42:10.02ID:yx6dTx260
Git for Windows 2.12.2(2)
0518デフォルトの名無しさん (ワッチョイ)垢版2017/04/07(金) 22:10:53.52ID:6Q2Nznhn0
タイムスタンプの話題はひっぱるなあ

もともとタイムスタンプが保持される方が便利な用途もある、Gitでもコミット時のファイルセットで
タイムスタンプが戻るのも選べると便利なのに、って内容のこと言われたら、現gitの仕様が絶対な人が
ずーとキチガイみたいにタイムスタンプ復元必要ねえ、ってわめいているんだよね?
0521デフォルトの名無しさん (ワッチョイ)垢版2017/04/07(金) 23:30:25.55ID:xCtKbZyH0
>>510
> もともとタイムスタンプが保持される方が便利な用途もある。

ソースコードにおいてはタイムスタンプは、便利便利じゃない以前に
ファイルを更新した時間でなければいけない。
ソースのコミット時間であってはならない。
これはMUST、絶対的な要件だ

checkoutなどでファイルを変更したならば、
その変更した時間(つまり現在日時)にならないといけない。

そうしないとソースコードは適切にビルドできないし、
ビルドを必要としないスクリプト系でもソースコードが
修正されたタイミングで内部的に再コンパイルするものがある。

今あんたが気づくべきは、俺がソースコードに限定した話をしているってところだ。
ソースコードを管理するツールだから、そういう設計になっている。
0523デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 00:51:06.50ID:ZmPKT6lF0
メタデータをコミット時に保存してチェックアウト時に復元できるような別ツール使えばいいんじゃね
必要としてる人がたくさんいると思うなら自前で作って有償で売ればいいよ
そんな難しいわけじゃないから
0524デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 00:54:06.86ID:ZmPKT6lF0
ビルドの件はビルドツールがタイムスタンプじゃなくハッシュ使えばいいっていう話もある
それでも後方互換性というか広く使われてるツールをサポートすることは大事だし
タイムスタンプを復元することの必要性がないからgitで対応されることは当面ないだろうね
0526デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 01:05:08.77ID:N+5uce1L0
>>524
ビルドの度に全ファイルハッシュ計算して保持とかわざわざ遅くなる割にメリット殆どないような事をするわけがない。
メリットがあるのであればそんなに難しい事じゃないんだし既に存在して知られてるよ。
0527デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 01:06:38.57ID:YIelHZZf0
>>524
>ビルドの件はビルドツールがタイムスタンプじゃなくハッシュ使えばいいっていう話もある
そんな話どこにあるんだ...ビルド時間が無駄に増えるだけに思えるんだけど、何かメリットがあるのだろうか
0528デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 01:14:45.10ID:Ibdd+rg/0
>>525
> どこにハッシュ値を保持しろと?

全くそのとおりだなw

ビルド前のファイル ・・・の日付
ビルド後のファイル ・・・の日付

両方共ファイルの日付という情報を持っているからこそできること
0529デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 02:04:54.75ID:ZmPKT6lF0
お前ら必死だな
ビルドツールがタイムスタンプベースで仕事をしてるのは
納品物のタイムスタンプを気にしてる素人のロジックと同じだっての
古くからの慣習ってだけ
0531デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 02:17:24.56ID:N+5uce1L0
>>529
IDEのビルトインも含めてビルドツールいままでどれだか作られてると思ってんの?
で、それらすべて素人が作ってると?
0532デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 02:22:39.65ID:ZmPKT6lF0
素人が作ったって言ってんじゃないよ
おまえらがバカにしてる納品物のタイムスタンプを気にしてるやつと考え方が同じだって言ってるの

Googleはタイムスタンプベースじゃないビルドツール使ってるけど
「何かメリットがあるのだろうか?」って聞いてこいよ
https://bazel.build/versions/master/docs/bazel-user-manual.html#correctness
0533デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 02:25:45.27ID:N+5uce1L0
むしろタイムスタンプで十分なものをわざわざ遅く無駄にメモリとストレージとIO帯域を浪費するような実装しようとするほうが余程のマヌケか素人
0535デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 02:31:20.48ID:N+5uce1L0
>>532
それ、デフォルトでタイムスタンプ使うと書いてるけど?
0536デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 02:36:44.84ID:N+5uce1L0
>>534
ファイル内容というかファイルの依存関係だね。
既存の大抵のビルドシステムとやろうとしてることは同じ
0538デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 03:03:31.86ID:oTRSwPK20
だってファイルシステムのエントリに保存されてるもの
ハッシュを常に取って保存するファイルシステム使ってたら、ハッシュベースな比較もいいだろうが
0539デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 03:33:08.91ID:sJFTclBC0
ビルドに依存関係のあるファイル(中間成果物も含む)をすべて最新のソースに反映済みかビルドツールは確認しなくちゃまずいと思うんだけど、
それって結局ビルド中に出来るファイルのタイムスタンプとかハッシュをを全部確認するということと変わらないと思うんだよね。

ハッシュって結局全データ読まないとわかんないわけで、これから全データ読ませてコンパイルするかどうか判断するツールが全データ読んでたらなんとかならんのかと思うし、
普通ハッシュが変わってたらタイムスタンプも変わるので、タイムスタンプでコンパイルするかしないか判断をするのは理にかなってると思うけどもなぁ

タイムスタンプが信用できないビルド環境(分散環境とかであるんだろうけど)とか、touchしただけのファイルがコンパイルをめちゃくちゃ長くするとか、そういうケースだったら
ハッシュを使ったほうが良いのだと思うけれど。

だから、純粋にタイムスタンプを復元したほうがビルド前提のソースコード管理システムにとっていいケースってのはどういうときなのか知りたい。

ビルドが要らないものにはタイムスタンプを保持してくれたほうが同名別バージョンの判別がしやすい、ということなんだろうけれど。
けど、それも裏返せばタイムスタンプは簡単に確認できるから、人間がハッシュなんかでいちいち確認したくない、ビルド時の効率性を下げてでも人間に合わせろって意見なんじゃないかなぁ

タイムスタンプ保存する機能より、必要なファイルのハッシュ値をコミット時かなんかに取るようにして人間が変更されているのをタイムスタンプ以外の方法で確認しやすいようにした方が良いと思うけど
0541デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 08:56:26.86ID:E/70y/Nc0
>>520
タイムスタンプを保存したり復元するツールはそれなりに使い所があるかもしれないが、gitに含めない方が良いよな
ひとつのツールに機能を盛り込みすぎない方が良い
0542デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 09:03:07.60ID:P+8J79zs0
「Gitを部内で普及させた方がいいですよおー」
「でもそれプログラマ向けのソフトでしょ。使い方難しそうだし」
「慣れれば簡単ですよ。それにドキュメントの履歴管理にも便利なんです」
「バックアップで十分じゃないの?」
「いえ、過去にコミットした状態に自由に戻せるんですよ、ほら」
「なるほどねー、あれ? でもファイルのタイムスタンプは今の時点だよ?」
「そりゃそうです。タイムスタンプが戻った方がいいなんてどシロウトの発想ですよ。
そもそもタイムスタンプとファイルの中身になんの関係があるんですか? 説明
できますか? 頭悪いんですか?
「・・・お前、Gitを推奨ツールにする案は却下な」
0545デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 09:35:08.51ID:lscI+aDp0
>「Gitを部内で普及させた方がいいですよおー」
>「慣れれば簡単ですよ。それにドキュメントの履歴管理にも便利なんです」

gitにタイムスタンプ保持の機能を欲しがっている阿呆の話か?
0550デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 11:54:39.43ID:Ibdd+rg/0
あ、一応説明しておくか。

単にファイルをコピーとかすると、
作業中のファイルとか納品に必要のないものが
間違って入ってしまう可能性がある。

git archiveだと本当に納品するものだけを入れられる。
0552デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 17:39:40.98ID:ZmPKT6lF0
>>534
タイムスタンプにだけ依存してるツールと
最適化のためにタイムスタンプを使うことがあるツールを一緒にするなよ

Bazelはファイルシステムでハッシュ持ってる場合はハッシュ比較を先にしてmtimeの比較はしない
mtimeで比較する場合もその後ハッシュで比較する
Google内部ではカスタマイズしたファイルシステムを使ってハッシュを保存してるからタイムスタンプに依存しない

>>525-528
この辺のやつは既存の慣習や制約の枠内でしか物事を捉えられない脳みそだから
タイムスタンプ君と同類 いい反面教師
0553デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 18:03:07.28ID:N+5uce1L0
>>552
デタラメばかり言ってんじゃねえよ
だいたいファイルの内容量のハッシュを保持するファイルシステムがどこにあんだよ
0554デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 18:11:01.85ID:py60arCP0
>>552
> 最適化のためにタイムスタンプを使うことがあるツールを一緒にするなよ

一緒にしてないぞ?

最適化のためにタイムスタンプは、コミット日時ではなく
最後に変更した日時になるべきだって話をしてる
0556デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 18:40:33.74ID:N+5uce1L0
>>555
ファイル内容のハッシュを
そんなファイルシステムがGoogle社内に存在しているという根拠ぐらい貼れよ
0557デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 18:42:28.18ID:DCm4pRAE0
ソースを管理するためじゃなくてgitを使うためにgitを使う信者が、
たかがタイムスタンプすら保持できないという話を出されただけで
こんなにも必死なのはなんで?やっぱ図星だから?
0558デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 18:46:20.80ID:N+5uce1L0
>>557
そんな話をしてる奴居るか?
ちなみに俺は一度もgitの話なんてしてない。スレ違いのビルドツールの話をしてるぞ
0561デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 18:53:45.92ID:py60arCP0
>>559
マヌケだなw

こちとらgitはソースコードのバージョンを管理するためのツールで
バックアップソフトが欲しければ、そっち使えという、
すごく当たり前の前提において、
ソースコードのバージョン管理ソフトはどうあるべきかを語っているだけなのに、

そうか。あのバカ、gitをバックアップソフトだと思っていて、
gitにないものは、gitの機能不足だと思ってるんだ。
0562デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 18:54:24.18ID:py60arCP0
>>557
> たかがタイムスタンプすら保持できないという話を出されただけで

タイムスタンプを保持しないのがバージョン管理ソフトとして
正常な動きですからね。
0563デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 18:58:17.82ID:E/70y/Nc0
>>543
タイムスタンプを戻すのはバージョン管理とは関係ないから盛り込み過ぎだな
0566デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 19:33:27.06ID:v9enVIHU0
まあ本当に必要だと思うなら git コミュニティーに投稿すりゃいい話ではある。
こんなとこでアピールするよりかは実際に入る可能性もあるんじゃないの?
あくまで本当に必要ならばだけど。
0567デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 19:41:38.13ID:py60arCP0
>>566
昔gitコミュニティーに投稿して、いろんな人がバージョン管理ソフトに
タイムスタンプを保持するのは間違いだって丁寧に説明しているのに話を聞かず、
入れろ入れろとあまりにもしつこいから、リーナスがブチ切れて
タイムスタンプを保持する理由も言えないようなヤツとは話にならん。
絶対に入れることはない。とピシャリと言い放ったからな。

ここで愚痴るしかないだろうさw
0568デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 20:02:51.31ID:TQcQh6SK0
bazelは「同じ」ソースファイルからは「同じ」成果物が生成されて、
その再生成の必要性を徹底的にゼロにしようって意図を持って設計されてるのかな
そのために、この「同じ」にはタイムスタンプがなるべく関係しないようにしたいという感じなのか

ブランチの切り替えでmtime更新されて再ビルドが動くとかとは発想がまったく違う原理で動くわけだな
ブランチ切り替えたときにはすでにビルド済みの成果物がそこにある

bazelのドキュメントちょっと読んだだけで書いてるから真偽は不明だぞ信じるな
0569デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 20:09:23.97ID:vxhhaj1D0
タイムスタンプ比較した方が早いのに「ビルド時に毎回ハッシュ計算するからタイムスタンプ戻せ」って
タイムスタンプ信者が暴れてるんだろ?
ありえね〜
0570デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 20:17:19.90ID:TQcQh6SK0
ファイルのビルド依存関係は完全に把握していることが前提で、
最初にファイルの更新を検知(これはタイムスタンプとかIDEから教えてもらうのかな?)すると
その依存関係にしたがって必要な部分を再ビルドしていくみたいな感じか
0571デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 20:24:03.20ID:py60arCP0
>>568
> そのために、この「同じ」にはタイムスタンプがなるべく関係しないようにしたいという感じなのか

違う。bazelでもタイムスタンプが違えば違うとみなすが、
それに加えてファイルの中身まで見てるってことだよ
0573デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 20:30:26.21ID:TQcQh6SK0
ビルドを最小限にするにはタイムスタンプの違いだけでビルド開始してたら話にならんし
あと成果物にタイムスタンプ由来の情報が入るのが嫌なんだよね
0574デフォルトの名無しさん (ワッチョイ)垢版2017/04/08(土) 21:36:24.37ID:NjQGfhpX0
gitにタイムスタンプを入れるな派はソースファイルを考えていて
入れろ派はdiffで差分確認出来ないファイルを考えているんだよね?
Git LFSだけファイルのタイムスタンプを保存するようにして、
ファイル種別でGit LFSに入れる運用にすれば両方満足するのでは?
0576デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 00:23:36.58ID:ELCvvPn60
>>567
>昔gitコミュニティーに投稿して、いろんな人がバージョン管理ソフトに
>タイムスタンプを保持するのは間違いだって丁寧に説明しているのに話を聞かず、
>入れろ入れろとあまりにもしつこいから、リーナスがブチ切れて
>タイムスタンプを保持する理由も言えないようなヤツとは話にならん。
>絶対に入れることはない。とピシャリと言い放ったからな。

それ単にリーナスの尻馬に乗って俺スゲエって言いたいだけちゃうかと
少なくとも「間違い」とか「正しい」なんて言えないだろ
0577デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 00:25:02.43ID:ELCvvPn60
タイムスタンプ入れろ派も(上見ればわかるけど)それをデフォルトの動作にしてよみたい
なことは入ってないんだよね。”-t”オプションつけたらぐらいでしょ。
0578デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 00:25:07.65ID:b41hiiaV0
>>575
なんでそんなすぐバレる嘘つき続けるんだ?
それ単にFUSEを通してバージョン管理システムにアクセスするだけでファイルシステムじゃないじゃねえか。
これがファイルシステムだと主張するならgmailすらファイルシステムと言えるわ
0581デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 03:03:47.00ID:R/6T3h6u0
>>574
> 入れろ派はdiffで差分確認出来ないファイルを考えているんだよね?

何も考えてないだろw

その証拠にタイムスタンプを入れることで
どんな問題が解決するのかを言えていない
0588デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 15:38:37.98ID:oqOsUDjg0
あくまでソフトウェア開発の道具としてgitを使う層と、gitを使うのが趣味でそのために適当なテキストファイルを書いている層とがいるから話が噛み合わないんだよな
0590デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 16:17:22.48ID:b41hiiaV0
>>588
適当なテキストファイルを書いてるとタイムスタンプがどう役に立つんだ?
0593デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 16:34:52.84ID:b41hiiaV0
>>591
>>592
え?じゃあソフトウェア開発にタイムスタンプ(を戻す機能)がどう役にたつんだよ
0594デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 16:37:25.01ID:ZPMPIHcF0
同じ意見同士で喧嘩すんな。

gitで管理してれば、行ごとに更新日時が記録される。
タイムスタンプ以上の正確な情報が記録されてるのに
わざわざタイムスタンプという人それぞれ違うようなものを
保持する意味がないことぐらい常識じゃないか
0595デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 17:07:04.12ID:b41hiiaV0
>>594
お前とは同じ意見だけど、
>>591>>592と同じ意見とは思えないけど
0596デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 17:26:46.49ID:MojKSihM0
なんで実装するべきかそうじゃないかで喧嘩が始まってしまうのか理解できない

実装するべきかどうかなのは置いといて、hookでなんとかできる可能性あるんだから必要だったらその方法を議論すればいいのに。
現状ではgitには実装されそうにない機能だという事実を一旦受け入れて。

それとは並行して実装するべきかどうかについて話すのは勝手にすればいいと思うけど

hookで試してみたけど上手く行かなかった、とか、hookではどうしても解決できない問題が発生するとか、そういう話が出来るはずだろ。
0598デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 18:18:54.45ID:MojKSihM0
>>597
hookで実現するかどうかを議論するということではなく、もし、タイムスタンプの管理が必要なのに自分でhookを書けない人が居るんだとしたら、
素直にどういうふうにhookを書けばいいか相談するなり何なりすればいいのにね、ってこと。

自分にとって必要なのに機能がない、に対して
1. ツールを工夫して使って代替する方法を考える、相談する
2. 他のツールを探す
3. ツールに追加機能を実装して採用してもらう
4. 機能がないことを盾にそのツールを頭ごなしに否定する
あたりの選択肢があるっぽいけど、どうして最も建設的でない4を採用する奴がいるのかな?って思っただけ
0599デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 20:13:11.78ID:ofnK+OUt0
>>596
建設的な議論をしたいんじゃなくて
ただたんに文句言いたいだけだからな。

少なくとも
git タイムスタンプ
とかでググればけっこうやり方はでてくるよ。
0601デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 20:56:57.12ID:MojKSihM0
>>599
gitのhookで解決する方法がググれば出てくるのに、それでもなにか言いたいんだとしたらhookを使うことには実務上の問題があるのか、
ググって出てきたやり方には欠陥があるのか、何かしらググった結果では満足できない合理的な理由があるんだと思ったんだけどな。

嗜好品だったらともかく、実用品を実用上の問題以外で批判することが、その人にとってどういう嬉しさをもたらすのか全くわかんないわ。
0605デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 22:26:43.21ID:MojKSihM0
>>602
ということは、タイムスタンプで管理することを仕事かなんかで強制させられて、諦めてそれに従うんじゃなくて、タイムスタンプに意味があるんだ!なんとなくだけど!って思い込んでる人がいるってことかな

言語の話なら一長一短あるだろうし具体的にこの機能はこんなに素晴らしい!とか指摘できると思うんだけど、タイムスタンプ管理のメリットってのが全然語られないし、
むしろ、メリットデメリットで主張してるのではなく、そう決まってるから従わざるを得ないというところを有耶無耶にしているような印象があるんだよな。

まぁ、>>604の言うようにバイナリかタイムスタンプネタで遊びたいやつが居るだけの可能性も高そうだけど。
0607デフォルトの名無しさん (ワッチョイ)垢版2017/04/09(日) 23:08:30.93ID:ZPMPIHcF0
単純にタイムスタンプっていうのは、ファイルを最後に変更した時間なんだから
checkoutすることで変更したのならば、その時刻になるのが正しいんだよ
0609デフォルトの名無しさん (ワッチョイ)垢版2017/04/10(月) 13:41:45.28ID:PlVZ1nOv0
>>607
そのファイルをその内容に変更した時刻のことだよ。

Windowsでファイルをコピーしたことない?
タイムスタンプも一緒にコピーされる意味を考えてみようよ
0610デフォルトの名無しさん (ワッチョイ)垢版2017/04/10(月) 13:48:02.71ID:PlVZ1nOv0
あと、「makeがタイムスタンプを参照するから」 という回答もおかしいよね。
思い切り自己矛盾を抱えている

『makeは、ファイルの更新日付なんか参照せず、ファイルの変更を検知すべきだ』
0612デフォルトの名無しさん (ワッチョイ)垢版2017/04/10(月) 14:13:31.25ID:CykROrgz0
WindowsでもLunixでもMacでも
タイムスタンプを維持したままコピーするかどうかは選択の問題
常に維持されるのが当然っていう考え方はナイーブすぎ

makeはそういうもんだしgitから見たらコントロール外にある仕様だから
自己矛盾でもなんでもない

今後はbazelのようにコンテンツベースのビルドツールも増えてくるだろうし
gitに保存されてるハッシュを利用するようなものも出てくるだろうね
でもそれとgitがタイムスタンプを復元する機能を持つべきかどうかは関係ない
0613デフォルトの名無しさん (スッップ)垢版2017/04/10(月) 16:46:10.99ID:tz6SiFVld
gitがタイムスタンプを復元すると言うのは
・コミットした時のファイルのタイムスタンプをファイルのコンテンツに含める
・チェックアウトした時にファイルのタイムスタンプをコミット時刻に変更する
の二つが考えられる。

前者は、ファイルのタイムスタンプを変更しただけで別のファイルとみなすと言う意味だ。そういう仕様にすると、相当使い辛くなることが容易に想像できる。
例えば、一回編集したファイルを元に戻すのに必ずgitのコマンドを使わなければならなくなる。

後者は、ブランチを一度でもリベースするもコミット時刻には意味が無くなるので何を管理したいのか分からなくなる。
0615デフォルトの名無しさん (ワッチョイ)垢版2017/04/10(月) 17:16:14.19ID:39xGvEe60
>>612
bazelがファイルの内容を”その”ファイルシステムの変更検知に使うなんてどこにも書いてないんだけど、嘘つきに騙されちゃったの?それとも本人?
0616デフォルトの名無しさん (ワッチョイ)垢版2017/04/10(月) 17:17:04.23ID:39xGvEe60
×ファイルシステム
○ファイル
0617デフォルトの名無しさん (ワントンキン)垢版2017/04/10(月) 18:28:30.03ID:b0bzONFHM
あーgitにタイムスタンプ復元機能があれば完璧なのにー
0618デフォルトの名無しさん (ワッチョイ)垢版2017/04/10(月) 19:45:33.40ID:ttjEUSJK0
gitがタイムスタンプを保存しないのは
「vcsはタイムスタンプを保存しないのが正しい動作」
と言っちゃうような馬鹿が至る所で巻きおこす問題の嵐を避ける為

リーナスは非常に賢明な判断をしたことがこのスレを見ているとよく分かるw
0621デフォルトの名無しさん (ワッチョイ)垢版2017/04/10(月) 22:13:28.06ID:f5bfXI8/0
>>610
> 『makeは、ファイルの更新日付なんか参照せず、ファイルの変更を検知すべきだ』
ファイルの変更を検知するためには、変更前のファイル情報を持ってないとダメでしょw
0623デフォルトの名無しさん (ワッチョイ)垢版2017/04/10(月) 22:16:03.55ID:f5bfXI8/0
内容を変えたのであれば、内容を変えた日時になるのは当然でしょw
今ファイルの内容を変えたのに、昔の日時になるのはおかしいwww
0626デフォルトの名無しさん (ワンミングク)垢版2017/04/10(月) 23:49:10.41ID:IqR3Ht8lM
そんなツールどこにあんだよって話だが
0635デフォルトの名無しさん (ワッチョイ)垢版2017/04/11(火) 20:32:32.15ID:9qHDk2tg0
こいつナチュラルなバカっぽいw
0636デフォルトの名無しさん (スプッッ)垢版2017/04/12(水) 12:16:27.41ID:5zOvG+Scd
そろそろ飽きたのでレスを戻して最初から繰り返すか
0642デフォルトの名無しさん (スプッッ)垢版2017/04/12(水) 19:47:18.40ID:5zOvG+Scd
>>637
レスのタイムスタンプが戻ってないよ
0643デフォルトの名無しさん (ワンミングク)垢版2017/04/12(水) 19:53:17.32ID:usx2Dq45M
svnでも使っとけよ
0644デフォルトの名無しさん (ワッチョイ)垢版2017/04/12(水) 20:48:11.81ID:lSh3zEYS0
いや、流石にsvnでもタイムスタンプは戻せん。
コミット時刻になら設定次第だけど戻せるけど、そこもgitと同じ。
0646デフォルトの名無しさん (ワッチョイ)垢版2017/04/14(金) 15:49:28.34ID:l3/xlJJH0
ワッチョイが意味なさない
0647デフォルトの名無しさん (ワントンキン)垢版2017/04/14(金) 16:02:12.75ID:7vOZxQ5kM
同じ事ばかり繰り返してると早くボケるぞ
0648デフォルトの名無しさん (ワッチョイ)垢版2017/04/14(金) 18:51:24.72ID:1n110CPB0
澁谷 恭正 (46歳)

千葉県立沼南高柳高等学校卒

松戸市立六実第二小学校PTA会長

小学女子レイプ殺人で逮捕


お住まい:
千葉県松戸市六実4-8-1 Mシャトレ

お子さん:
ひりゅう、あやか ※父子家庭

趣味傾向:
アニオタ
0649デフォルトの名無しさん(霧の向こうに繋がる世界) (エーイモ)垢版2017/04/17(月) 11:19:00.88ID:EyfSFiB8E
名前欄に!ken:6って入れたら少しは差別できる
0654デフォルトの名無しさん (JP)垢版2017/04/18(火) 11:49:07.78ID:Uw8XacGPH
死ぬまでには出来るだろうと思ってずっと待ってると先に死んでしまう
0656デフォルトの名無しさん (スプッッ)垢版2017/04/18(火) 20:06:48.85ID:qTz369Iyd
死んだらgitで戻せばok
0662デフォルトの名無しさん (スプッッ)垢版2017/04/19(水) 08:16:01.57ID:aMVSfr6md
gitでタイムスタンプを戻すことが出来るようになる時間線では、さらに遠い未来ではgitで時間を戻せるようになるまで拡張される。
タイムマシンで過去を改変することが可能な世界では、タイムマシンで過去を改変出来ない世界になるまで永久に時間改変を繰り返し、最終的にはタイムマシンが開発されない世界に収束する。
以上のことから、gitでタイムスタンプを戻せる世界は、実現しない。
0666デフォルトの名無しさん (ワッチョイ)垢版2017/04/19(水) 18:41:41.70ID:nb+3WMsJ0
Gitは最近やったコミットの改変、つまり歴史改変ができるじゃん

コミットの入れ替えも可能だからコミット一覧で
日時が未来のコミットが下の方にあったりとか良くある
0669デフォルトの名無しさん (ガラプー)垢版2017/04/20(木) 21:57:07.58ID:VEp9ZXEcK
プレミア見れない
ブンデス見れない
CLEL見れない
代表も見れねえちきしょう
結果知らされて見れねえちきしょうクソったれ同和のクソ野郎地獄へ落ちろ
音楽聞けねえちきしょう
テレビ見れねえちきしょう
オシムは考えて走るサッカー
アンデションズはよく(十分に)考えて(タイミング計って)車のドア閉めて車(バイク)で通る嫌がらせ
同和のクズ共死ねクソ共がざまあみろ気違い共
ほれ気違い共もっともっとドア閉めろ通れ
それしか能のない能無し共がざまあみろ地獄に落ちろ。悔しいか、ざまあみろくたばれクソ同和
お前らの恐ろしさをもっと見せてみろ。そんなんじゃなんともねえぞ
袋とじ見たぞ。悔しいか、ざまあみろくたばれクソ同和
生きる権利もねえクズ共が藁地獄へ落ちろ
嫌がらせがエスカレートするのが楽しみでしょうがない。今それだけが楽しみだ。俺の生き甲斐藁。それだけ怒ってるってことだもんな藁
ラブホ行ったのがそんなに悔しいかざまあみろチンカス共が藁。思う存分楽しんでくるぞあばよ
椎名茉莉、知っちゃったよ。ラブホに来なければ知らなかったはずだけどな。サンキューお前ら藁
超美形。嬉しくてたまらん。お前らどうしてくれる?藁ほれ赤字分を取り返すために必死になれ
ピザ食ったぞ。羨ましいだろう?藁ざまあみろ
音楽聞いたぞざまあみろ
非人が美人
お前ら音楽聞かせてくれてサンキュー。それもお前らがドア閉めて通ってくれたおかげだ
テレビも見たぞざまあみろ
同和の悪口書けば書くほどドア閉めるってことは嫌がらせしてるのは同和だって証だ
とにかくドア閉めるクソ同和藁(とにかく明るい安村風)
深谷市東方の西と高橋か死ね
サッカーの動画見たぞざまあみろ
気違いなのを常識化させるのが集ストの狙い。多いほうが正しいと考える日本人に漬け込んだわけだ。例え悪いことしてても多いんだから正しいと錯覚するように。上手く法律の盲点を突いた嫌がらせだな。法律で取り締まれないことをイイことにやりたい放題
ラルクがライブやるのが悔しいかざまあみろ
メル友出来たぞざまあみろ悔しがれクソ野郎共藁
0671デフォルトの名無しさん (ワッチョイ)垢版2017/04/27(木) 21:46:58.77ID:fnnc/aNx0
すいません。分からないので教えてください。
githubでプルリクを送って、まだマージされてない状態で
そのプルリクのコミットの上に、別のコミットを積んで別のプルリクを作成した場合に、
後者のプルリクのFile Changedの中に最初のプルリクの修正分も表示されてしまうんですが、
後者の修正分だけ表示されるようにするにはどうしたらいいですか。

未マージのプルリクを前提としてコミットを積んでいった場合のプルリクはどうするのが正しいんでしょうか。
0677デフォルトの名無しさん (ワッチョイ)垢版2017/04/27(木) 23:48:30.19ID:fnnc/aNx0
先のプルリクがマージされたら、後のプルリクのFile Changedが変わるかと思ったけど変わらなかった
pullしてマージしてpushし直したら後のプルリクのFile Changedだけの表示になった
gitてむつかしい
0682デフォルトの名無しさん (ワッチョイ)垢版2017/04/28(金) 00:05:56.03ID:GsGj7Q3/0
違うけど先のプルリクの内容がないと成り立たない内容
開発初期段階なので

ていうか起動画面があって、その次の画面を作るとして
起動画面のコードが入らないと次の画面が出せない
起動画面と次の画面の開発はプルリク分けるべきでしょどう考えても

レビュー必須tっていうのも考え物じゃないんか
0688デフォルトの名無しさん (スプッッ)垢版2017/04/28(金) 08:27:59.57ID:Ac9Dm7bId
>>682
レビューが100%通ると仮定して、自分のリポジトリに対してどんどん作業を進めれば良いじゃ無いか
プルリクは一度に一つずつ作成して、それが通ってから次のコミットを使って次のプルリクを作る

多分問題はレビュー必須であることじゃなくて、プルリクを受け付けてもらえないと何か出来ないことがあるせいなんじゃ無いかな?
0696デフォルトの名無しさん (エムゾネ)垢版2017/04/28(金) 17:12:15.86ID:Ux6XlWNuF
そうか
じゃあアクセス権も復活させろ
0697デフォルトの名無しさん (JP)垢版2017/04/28(金) 17:23:08.85ID:krqKI6DBH
>>695
例えばOSがLinuxだとして、そのサーバに存在しないユーザがownerだとして、fetch/pullしたときにどうなるのを期待してるの?
0699デフォルトの名無しさん (ワッチョイ)垢版2017/04/28(金) 18:47:29.83ID:og/UncMo0
こういうのにアドホックに対応するのやめようぜ

「〇〇の情報がgitでは管理されない。具体的にこれこれこういう状況で困る。解決策はないか」だったら考えようがあるからOKだけど、

「〇〇の情報が保存されない。なんで?臨機応変にやればいいのに」とかって言うのは自分の抱えている問題がなんなのか明確になってないのに
思いつきで色々注文付けてくる発注者と一緒で相手すると時間を無限に消費されるだろ

>>698
ということで、困ってるならどういう状況で困ってるのか説明してくれない?困ってないなら保存されなかろうがどうでもいいよね
0705デフォルトの名無しさん (ワッチョイ)垢版2017/04/29(土) 08:07:55.19ID:uOYq6SYB0
あなたがコミットしたのだから、そのコミットの所有権はあなたに有ります
あなたがチェックアウトしたのだから、そのコミットの所有権をあなたに移すことが出来るようになります
ファイルシステムでの所有権?
それはあなたが使ってるファイルシステムに要望してください
0706デフォルトの名無しさん (ワッチョイ)垢版2017/04/29(土) 10:20:27.70ID:VKbKBamV0
所有者情報ってのはOSで管理されてるものだからそういうのはgitは見てないんじゃないの
バイナリエディタでファイル開いても所有者情報とか編集日時とか格納されてないでしょ
0708デフォルトの名無しさん (ワッチョイ)垢版2017/04/29(土) 13:08:26.58ID:wQSInbL00
>>706
例えばtarで圧縮したときはファイルの日付や所有者まで全部保存される
WindowsでもLinuxでもね
ファイルの中身と同じくらい重要な情報で、だからきちんと管理されてる
いらないってんなら全部Cドライブ直下にでも/直下にでもずらりと置けばいい
0710デフォルトの名無しさん (ワッチョイ)垢版2017/04/29(土) 13:14:56.03ID:u4T6eHTd0
>>708
だからtarを使えば良いのでは?

ソースコードのバージョン管理をしたい時に
tar使っても過去の履歴がないのは、tarの機能が低いんじゃなくて
アーカイブツールだから。専用のソフトを使うのが一番適切
0711デフォルトの名無しさん (JP)垢版2017/04/29(土) 14:52:55.32ID:D/W8thCKH
所有者やアクセス権整理するスクリプト書いて一緒にコミット汁
0714デフォルトの名無しさん (ワッチョイ)垢版2017/04/29(土) 23:12:33.25ID:O2AdtwVJ0
>>708
/直下にファイルをずらずら置いておいても困らない例なんていくらでもあるけど
Gitを何に使いたいのかな?具体的な利用方法を言ってみてよ
他のツールでできることがGitでは出来ない、ではなく、ユースケースで言ってみて

言えないならさようなら
0716デフォルトの名無しさん (ワッチョイ)垢版2017/04/29(土) 23:38:53.95ID:jlBbI1A10
tarでファイルに他人に所有権のファイルが有った時、
自分のホームディレクトリ以下に展開した時
他人のファイルが出来ちゃうの?
それって危険だよね。tarの脆弱性か
0717デフォルトの名無しさん (ワッチョイ)垢版2017/04/30(日) 00:39:57.06ID:stNMbg2v0
tarはファイルの所有者情報を記録するけど
普通は、展開するときに所有権情報まで一緒に展開しない
展開したユーザの所有権で展開される

システム管理者がスーパーユーザ権限で作業するときぐらいだよ
記録された所有者情報を使うのは
0725デフォルトの名無しさん (ワッチョイ)垢版2017/04/30(日) 13:46:17.20ID:kmaYjpOe0
解決もなにもそんな問題自体ないから
0727デフォルトの名無しさん (JP)垢版2017/04/30(日) 14:11:44.10ID:VPr4LyhYH
git checkout -b void
0737デフォルトの名無しさん (ワッチョイ)垢版2017/05/01(月) 16:39:04.61ID:cTnhqS2C0
どうすんの?じゃなくて、なんですんの?を誰も言わない所が共通してるね。
0739デフォルトの名無しさん (ワッチョイ)垢版2017/05/01(月) 16:57:26.26ID:hDYaKlR40
そうだね
タイムスタンプはどうでもいいけど
アクセス権は元に戻ってほしい
0741デフォルトの名無しさん (ワッチョイ)垢版2017/05/01(月) 18:17:41.10ID:cTnhqS2C0
>>738
所有者を復元するという事の何を知りたいの?実装方法?手段が目的な人?
0743デフォルトの名無しさん (ラクッペ)垢版2017/05/01(月) 18:40:27.76ID:UGeh3nSfM
「どうしてそうしたいの?」とやたらに理由聞きたがる人が出てくるけど
彼らはなにがしたいんだろうか。
第三者が理由を聞きたがる理由がわからない
0746デフォルトの名無しさん (ワッチョイ)垢版2017/05/01(月) 19:19:27.44ID:63wSkuUp0
北朝鮮に何でミサイル撃つんだって聞く方が判り易い
0747デフォルトの名無しさん (ワッチョイ)垢版2017/05/02(火) 01:00:12.88ID:NO5OoAYe0
>>743
「〇〇の機能が欲しい」というのは、大抵「□□という差し迫ったシチュエーションで問題を解決したいから、〇〇の機能が欲しい」という形に言い直せて、
そして、「□□での問題解決するには、実は〇〇という機能でなく△△という機能を使ったほうがもっと良い」ということが往々にしてあるから。

というか、「〇〇の機能」の実装にあたって、実際には〇〇の機能をただ追加するだけじゃ済まなくて、既存の☆☆機能との整合性はどうするか、とかそういう部分も考えなくちゃいけないから、
仮に新機能を実装するとしても、「どうしてそうしたいの?」という問いは重要であろう

建築家が「トイレが10個ある家にして」と注文されたら、どうして10個必要なのか聞くでしょ。そして理由によって10個をどのように配置するか、トイレの内装なり便器なりを細かく決めていくでしょ。
それと同じことだよ。

自分にとっては自明だと思っているのかもしれないが、普通にどういう状況でその機能が欲しいかわからないから聞いているだけなんだけどな。

Gitはファイルシステムとかアーカイバ、バックアップツールとしてデザインされているわけじゃないから、それらの代替として使おうとしたら色々問題があって当たり前
それでもGitを使いたいんだとすれば、それらの用途にGitを使う意味を何か見出しているんだと思うんだけど、そこをどういう風に把握しているのかわからなければ解決策も考えられないよ
Git以外のもっと便利なツールを紹介できるかもしれないし。
Git含めどんなツールも銀の弾丸ではないんだからあらゆるものにケチつけようと思えばケチ付けられるわけで。だけどそれは生産的な行為だとは思えない。
0748デフォルトの名無しさん (ワッチョイ)垢版2017/05/02(火) 04:27:52.05ID:A1aerigX0
>>747
マジメかっ
0749デフォルトの名無しさん (アウアウウー)垢版2017/05/02(火) 09:40:45.97ID:lmunJWcIa
>>747
gitが本気で便利なら3行でまとまるはず
0753デフォルトの名無しさん (オッペケ)垢版2017/05/02(火) 12:16:53.78ID:zy/cUdw9r
教えたがりの屁理屈w
0754デフォルトの名無しさん (スプッッ)垢版2017/05/02(火) 12:20:00.45ID:QzQj3NgLd
>>751
マージした内容は行単位で辿れるのに所有権はファイル単位なのは整合性が取らなくないか?
またgitのlogはファイルの履歴ではなくファイルの内容の履歴を追う
この機能ともファイルの所有権の管理はそぐわない
0755デフォルトの名無しさん (スプッッ)垢版2017/05/02(火) 12:21:04.39ID:QzQj3NgLd
>>752
第三者が理由を知りたがるのは何故か?という質問に見事に答えてるだろ
0756デフォルトの名無しさん (スプッッ)垢版2017/05/02(火) 12:22:22.79ID:QzQj3NgLd
>>749


0757デフォルトの名無しさん (JP)垢版2017/05/02(火) 12:56:47.50ID:icdrLzQNH
>>754
> またgitのlogはファイルの履歴ではなくファイルの内容の履歴を追う
git logでは"Author"が表示されるが?

> この機能ともファイルの所有権の管理はそぐわない
管理しようという話じゃない
念のため言っておくが、「ファイルの所有権」の定義の話をしたいわけでもないぞ

git commitの日付を復元したいとか、ファイルの最終更新日を復元したいとかいろいろ
人によって異なるだろうが、それは単にそれを知りたいからだ

なんで人がそうしたいのか、お前の好奇心を満たさなきゃらなないんだ?
0759デフォルトの名無しさん (JP)垢版2017/05/02(火) 14:01:28.44ID:icdrLzQNH
>>758
えーと、git cloneしたら、ファイルの「所有者」は自分になるとかそういうこと言いたいんでしょうか
そういうつまんない議論したくないんですが
0760デフォルトの名無しさん (ブーイモ)垢版2017/05/02(火) 14:57:07.98ID:ciC4yh5PM
>>759
git log で表示されるauthorはファイルのownerでは無くて
コミットした人のconfigで設定されていたauthorが表示されますよね?
0762デフォルトの名無しさん (ブーイモ)垢版2017/05/02(火) 15:05:45.32ID:ciC4yh5PM
>>761
おまえファイルの内容の履歴の意味がわかってないだろ
0763デフォルトの名無しさん (スプッッ)垢版2017/05/02(火) 15:12:56.04ID:QzQj3NgLd
>>757
git blame
してごらん
各行毎にどのコミットに由来するかが表示される

gitにとってコミットが責任の単位なんだよ
0766デフォルトの名無しさん (ワッチョイ)垢版2017/05/03(水) 00:02:44.72ID:/FJiuNZS0
バージョン管理で重要なのはファイルの所有者じゃなくて
コミットした内容の所有者というか修正者である。

そのソースコードを誰にあげましたとかいらない。
誰が修正しましたかが重要。しかもメールアドレス付きでね。
重要ならば署名までつけられるしすごいことだよ。

という事で話は終わりじゃね?
0767デフォルトの名無しさん (ワッチョイ)垢版2017/05/03(水) 01:16:42.02ID:Bt9tKgiK0
masterとリリース用って分けるのが普通?
0768デフォルトの名無しさん (ワッチョイ)垢版2017/05/03(水) 01:40:20.24ID:jU3FK0a/0
>>767
運用によるgit flowとかgithub flowとかでググれ
0770デフォルトの名無しさん (ワッチョイ)垢版2017/05/03(水) 02:05:05.99ID:Bh8bh08M0
>>757
好奇心ではない、適切な解決策を見つけるために理由を聞いているのだ、と明確に書いたつもりなのだけども。
所有者を保存しておきたい理由が一般的なソースコードのバージョン管理の必要性からはわからず、なぜ保存したいのかわからなければ適切な解決策が提案できないとも書いているんだけども

目的の為に手段を考えるべきで、所有者の保存というのは手段にすぎない。そしてその手段は特にソースコードのバージョン管理を行うという観点からして素直に実装できるものではない。
その目的が「人によって異なる」時点で適切な設計を定義するのが難しくなるだろ。ツールの機能として実装するには、どんな人でも大抵同じ理由でその機能が欲しい、とならなければ細部まで設計できない。
0772デフォルトの名無しさん (スッップ)垢版2017/05/03(水) 11:28:03.91ID:xkQWxFrsd
sidやuidのことなら、それはマルチユーザー環境やファイルサーバーなんかでアクセス制御に関連して備わっているもなので、趣旨の異なるgitで保持してもゴミ情報
単なる数字列を見て何ができるんだか
0773デフォルトの名無しさん (ワッチョイ)垢版2017/05/03(水) 14:11:26.51ID:eMP4zE8M0
guidは糞
0777デフォルトの名無しさん (ラクッペ)垢版2017/05/04(木) 15:10:39.35ID:CGBB8kU5M
誰がコミットしたファイルか
なんて情報は開発中にしか使わないでしょ?
デプロイ時にはパーミッションや所有者情報のほうがずっと大事だし
それらがいつよ間にか黙って消えて無くなるのは辛いことだよ
0779デフォルトの名無しさん (ワッチョイ)垢版2017/05/04(木) 15:27:35.91ID:TekYC6Iv0
Unixじゃパーミッションやグループやオーナはデプロイ時に設定するのが一般的だな
特にオーナとグループはデプロイするローカルな環境に依存していてパーミッションの効果に影響するから
ソース管理でファイルが保持している情報をそのままデプロイするとかありえん
0781デフォルトの名無しさん (ワッチョイ)垢版2017/05/04(木) 15:58:20.15ID:TekYC6Iv0
>>780
開発するときにはお前自身は書き込み可能なオーナーとパーミッションになってないと行けないけど、
それがデプロイされた環境でそのまま書き込み可能な状態になってたらクビだよお前
0784デフォルトの名無しさん (ワッチョイ)垢版2017/05/04(木) 19:07:37.28ID:622MjM8c0
実行できなくなったら困るからじゃね
0787デフォルトの名無しさん (ワッチョイ)垢版2017/05/06(土) 01:19:34.30ID:ev+w1J/D0
またお前か・・・
0790デフォルトの名無しさん (ワッチョイ)垢版2017/05/06(土) 12:35:49.55ID:ojKA7hlp0
もう3年早く出版してほしかった
0793デフォルトの名無しさん (ラクッペ)垢版2017/05/14(日) 11:49:06.33ID:e2rBnMzFM
ファイルの属性が無くなるのは仕様?
setuidしてたやつが動かなくなっちまったぞ
0794デフォルトの名無しさん (ワッチョイ)垢版2017/05/14(日) 12:05:24.56ID:J/7Z9g0V0
そう仕様
0804デフォルトの名無しさん (スッップ)垢版2017/05/15(月) 18:06:52.29ID:VXPutR+gd
>>803
setuidの目的から考えると、gitの情報から復元するのは危険だろうね
0806デフォルトの名無しさん (ワッチョイ)垢版2017/05/20(土) 18:46:22.14ID:NsW7IlhH0
レスがないとは殊勝な
0807デフォルトの名無しさん (ワッチョイ)垢版2017/05/21(日) 09:03:49.16ID:lI2AjJAk0
Windows上にリモートリポジトリ置いて、別PCにローカルリポジトリ(リモートのクローン)を置いたときに、
リモートへのpushができなくて困っています。
pull、fetchはできたのでパス設定は誤ってないのと思うのですが。。もし対処が分かる方いましたら教えてください。

------------------------------------------------------------------------------------
remote: error: object directory (リモートリポジトリ)/objects does not exist; check .git/objects/info/alternates.
remote: fatal: unresolved deltas left after unpacking
error: unpack failed: unpack-objects abnormal exit
To (リモートリポジトリ)
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to '(リモートリポジトリ)'
------------------------------------------------------------------------------------
0808807 (ワッチョイ)垢版2017/05/21(日) 09:26:50.23ID:lI2AjJAk0
一部解決。
別PC上のgitをバージョン上げたら、TortoiseGitからのpushに成功しました。

が、VisualStudioからのpushができない。。
0809デフォルトの名無しさん (エーイモ)垢版2017/05/21(日) 11:14:10.48ID:h5RyjkDfE
修正用にブランチを作成してから他人のリポジトリにプルリクエストしたんですけど
masterじゃなければpush -fしても大丈夫ですか?
0812デフォルトの名無しさん (ワッチョイ)垢版2017/05/21(日) 15:02:40.82ID:KYYeGok80
>>810
push -fするのは他人のリポジトリって言ってませんよね?
自分のリポジトリの自分のブランチですよ?

まったくgit初心者ってバレバレなんだから
無理してレスするな
0815807 (ワッチョイ)垢版2017/05/21(日) 19:06:11.58ID:lI2AjJAk0
1日頑張ったけど解決しなかった。
わっかんねー。

>>811
Git for Windowsを許可しても、TCP9418を許可してもダメでした。
0816デフォルトの名無しさん (ワッチョイ)垢版2017/05/22(月) 00:24:29.43ID:rn8iG5MY0
unpack failed: unpack-objects abnormal exit
でググったが分からんな
0817デフォルトの名無しさん (エーイモ)垢版2017/05/25(木) 09:56:57.92ID:gJtqScyhE
.gitignore
task.php
password.txt

これら3つのファイルのみ管理したいんですが
initial commitしてから2回目以降からはpassword.txtの変更をgit add -Aとかでaddされたりコミットしないようにしたいんですけど
どうしたらいいのでしょうか?
毎回git add task.php .gitignoreみたいに手打ちするのが面倒くさいです
0818デフォルトの名無しさん (JP)垢版2017/05/25(木) 10:02:49.20ID:nE79I92lH
.gitignoreに
*して
例外に
task.php
password.txt
入れろ
0819デフォルトの名無しさん (エーイモ)垢版2017/05/25(木) 13:55:40.88ID:gJtqScyhE
.gitignoreの内容をこうするんですか
*
!task.php
!password.txt

でもこうするとpassword.txtを編集した時にpassword.txtもステージングされてしまいコミット対象になってしまいます
0823デフォルトの名無しさん (ワッチョイ)垢版2017/06/02(金) 22:36:06.11ID:WKcoaBZy0
週末に自宅でプログラミングしていくつかコミット作った後で、
月曜日に会社に出社してからコミットの日付を月曜日の時間に変えたいんですがどうしたらいいですか
0825デフォルトの名無しさん (ワッチョイ)垢版2017/06/02(金) 23:03:12.07ID:WKcoaBZy0
rebaseしてみましたが、sourcetreeだと、日時とコミットした...の二つが表示されていて、
日時の方に最初にコミットした時間が残っていますね。。
0827デフォルトの名無しさん (ブーイモ)垢版2017/06/02(金) 23:11:37.47ID:md2uAZGeM
rebase --ignore-date
0828デフォルトの名無しさん (ワッチョイ)垢版2017/06/02(金) 23:31:48.02ID:ehtIP3uB0
うーん
0832デフォルトの名無しさん (ワッチョイ)垢版2017/06/03(土) 02:27:51.58ID:Uw5Qf9Wo0
環境がよくわからないのだけれど、別のディレクトリにgit cloneして、週末に作業した分で上書きしちゃえば良くない?
そもそも作業日時を偽装すんなって話だが
0834デフォルトの名無しさん (ワッチョイ)垢版2017/06/03(土) 04:39:47.50ID:/kqtS8wt0
cherry-pick もオプション無しだと元のコミットの AuthorDate を引き継ぐね
コマンドラインからなら -n 指定してそのあとコミットすれば更新されると思うけど
それなら rebase --ignore-date HEAD^ で書き換えたほうが早い
0840デフォルトの名無しさん (オッペケ)垢版2017/06/05(月) 12:21:13.89ID:zngCdN7ur
もはや何の為のソース管理なのか分からんようになっとるなw
0841デフォルトの名無しさん (ワッチョイ)垢版2017/06/05(月) 13:38:52.60ID:1bSPHptQ0
gitで管理されていないソースセットがあるとします。
それをgitに取り込んでV1というタグを打ちます。
その後修正して完成します。これをV2とします。
V1とV2の差分をpatch形式で出すには
どういう方法をとると楽ですか?
0845デフォルトの名無しさん (ワッチョイ)垢版2017/06/06(火) 23:15:50.80ID:3B7gGeju0
v2.13.1
0846デフォルトの名無しさん (ワッチョイ)垢版2017/06/07(水) 01:47:24.44ID:MW2os+Jx0
ヒカル TV出演「年間5億は稼ぐ勢いですね」
https://www.youtube.com/watch?v=G7qL6ftpets
第1回案件王ランキング!YouTuberで1番稼いでるのは誰だ!
https://www.youtube.com/watch?v=asF2wQ2xhjY&;t=61s
ユーチューバーの儲けのカラクリを徹底検証!
https://www.youtube.com/watch?v=FUSb4erJSXE&;t=504s
【給料公開】チャンネル登録者4万人突破記念!YouTuberの月収公開!
https://www.youtube.com/watch?v=Y7DAQ0RKilM&;t=326s
誰も言わないなら俺がYouTuberのギャラ相場を教えます
https://www.youtube.com/watch?v=E4q-vaQh2EQ&;t=118s
YouTuberになりたいのは馬鹿じゃない!YouTuberになる方法
https://www.youtube.com/watch?v=Fr0WXXZRMSQ

最高月収5000万円だとさ。年収じゃなくて「月収」な
おまえらもyoutubeに動画投稿したほうがいいぞ。副業にぴったしだ
やろうと思えばスマホがあればできるぞ
最低2年はやらないとここまではいかないだろうけど才能とアイデアと
企画力と継続力があればが大儲けできる可能性がなくもない
まだまだ他の職種に比べれば競争率は低いからオススメ
顔出したくないならラファエルみたいに仮面つければいい
ハロウィン用でいろいろな仮装マスク売ってるからオヌヌメ
0855デフォルトの名無しさん (ワッチョイ)垢版2017/06/10(土) 19:22:05.87ID:yLLSprfl0
push -f
0856デフォルトの名無しさん (アウアウイー)垢版2017/06/15(木) 16:04:06.84ID:jiI/lDMda
わかばちゃんと学ぶGit使い方入門

を読んでいます。

コンフリクトの定義は何でしょうか?

上の本では、同じ行に同時に別々の修正が加えられたときに発生すると
書かれています。

オリジナルのファイル:
1 A
2 B

Xさんがオリジナルのファイルを以下のように修正。
1 A
2
3 B

Yさんがオリジナルのファイルを以下のように修正。
1 A
2 B
3 C

この場合 2行目および3行目が異なるため、コンフリクトが発生したことになるのでしょうか?

新しいファイルを以下のように更新すれば問題ないようにも思えます。

1 A
2 B
3 C
0857デフォルトの名無しさん (アウアウイー)垢版2017/06/15(木) 16:06:05.81ID:jiI/lDMda
というか、

同じ行に同時に別々の修正が加えられたときにコンフリクトが発生すると
したら、同時に複数人が同じ内容のファイルを修正なんてほぼ不可能で
あるように思えます。

ですので、コンフリクトの定義は、もっと柔軟なのではないかと思うのですが。
0858デフォルトの名無しさん (アウアウイー)垢版2017/06/15(木) 16:07:51.46ID:jiI/lDMda
1 A
2 B

上のファイルをXさんが

1 A
2 C
3 B

と変更。

Yさんが、

1 A
2 B
3 D

と変更。

うーん。不可能なように思えます。
0860デフォルトの名無しさん (ワッチョイ)垢版2017/06/15(木) 17:40:53.17ID:Emed4SrA0
>>856
(1)
1 A
2 B
3 C
なら、ダメ

Xの保存が先なら、Yは、この状態を取得し直して、
1 A
2
3 B

1 A
2
3 B
4 C
となるはず

とにかく、(1)には出来ないので、後の人は、やり直し。または、
1 A
2 B
まで戻して、Yが(1)の状態にして保存。
次に、Xが(1)を取得して、それを変更する
0861デフォルトの名無しさん (ワッチョイ)垢版2017/06/15(木) 20:17:20.11ID:IguO0RCP0
>>857
3行のサンプルで考えたらそうだけど、実際ソースコードの変更をする場合は同じ行に同時に別々の修正が加えられることはあまりないと思うんだけども。
あるとしたら大抵はそもそも複数人での作業の段取り自体がまずいケースなんじゃないかな。
0863デフォルトの名無しさん (ワッチョイ)垢版2017/06/17(土) 22:50:57.80ID:8wOx4ll30
gitがタイムスタンプを更新してくれたおかげで
どのファイルをアップロードすればいいのか分からなくなった
0866デフォルトの名無しさん (ワッチョイ)垢版2017/06/18(日) 15:12:44.87ID:xPH4G83l0
>>863-864
ある種のdeployツールとは相性悪いかもね
0867デフォルトの名無しさん (ワッチョイ)垢版2017/06/18(日) 15:34:08.72ID:5/hisFs/0
makeはタイムスタンプが更新されたソースをビルド対象にすればいいし、デプロイも同じような
ものだと思うんだが。
「ある種のdeployツール」ってどんなのを想定しているんだろう。
0869デフォルトの名無しさん (ワッチョイ)垢版2017/06/18(日) 17:01:02.62ID:DuPi1FAb0
すいません。教えて下さい。
Windows 10のHyper-VにCentOS7を入れて、git 2.13.1とgit-lfs 2.1.1をインストールして、Smart HTTPを設定しました。
Git Bash (Windows 10 )から、git cloneやpushができるところまできたのですが、
リポジトリにgit lfs install、git lfs track、バイナリファイルを追加してpushすると、以下のメッセージが出ます。
batch response: Repository or object not found: http://[CentOS ip]/git/lfstest.git/info/lfs/objects/batch
Check that it exists and that you have proper sccess to it
何が原因考えられるでしょうか?
よろしくお願いします。
0870デフォルトの名無しさん (ワッチョイ)垢版2017/06/18(日) 18:30:07.87ID:xPH4G83l0
URLが間違ってる
0872デフォルトの名無しさん (ワッチョイ)垢版2017/06/18(日) 20:56:46.20ID:dLIsPmeH0
    〃〃∩  _, ,_
     ⊂⌒( `Д´) < またタイムスタンプの話の相手してくれよ
       `ヽ_つ ⊂ノ     ひまなんだよ
              ジタバタ
0873デフォルトの名無しさん (ワッチョイ)垢版2017/06/18(日) 21:02:56.93ID:ZkAshefq0
タイムスタンプ復元機能は元々は将来的にgitに導入する予定だったけど
あまりにもクソクソうるさいタイムスタンプ厨にキレたリーナスが絶対に入れないと決めた
0875デフォルトの名無しさん (ワッチョイ)垢版2017/06/18(日) 22:13:03.73ID:o43mtcr60
make, maven, gradle などは、ファイルAが更新されていたら、
Aに依存している、ファイルBも更新・再コンパイルされる

それが、gitに反映されるから、おかしく感じる

Aしか更新していないのに、何で、Bも更新されているのか?
0877デフォルトの名無しさん (ワッチョイ)垢版2017/06/18(日) 22:27:54.66ID:1y+XaoN70
>>875-876
普通はバージョン管理するソースファイルとビルドで動更新されるファイルを区別して
後者は.gitignoreに登録してバージョン管理しないようにする
でもVisualStudioとかの糞は今だにこの二つの情報がひとつのファイルに共存してたりして、管理が難しかったりするけどね
そのためにgit update-indexとか使わねばならない
0886デフォルトの名無しさん (ワッチョイ)垢版2017/06/19(月) 00:41:18.55ID:ydqJ52nG0
>>884
自分で編集したときにはコミットする必要がある
でも他人が編集した場合、その変更をpullしてきた後ビルドすると何故ファイルの内容が変更されてしまう
その変更はコミットすべきじゃない
0887デフォルトの名無しさん (ワッチョイ)垢版2017/06/19(月) 00:43:55.21ID:ydqJ52nG0
>>885
消すとビルドできなくなるってことは自動生成できないってことだろ?
そのファイルをリポジトリ管理しないと、cloneしたときに消した状態になるんだからビルドできないじゃん
0891デフォルトの名無しさん (ワッチョイ)垢版2017/06/19(月) 02:01:36.57ID:x8a1b5290
タイムスタンプの件は
gitの使用を強制されているのでなければ他のツールを使うことを勧めたいところだが
そういうことに適した他のツールを知らないので何一つ勧めることができず申し訳ない
0892デフォルトの名無しさん (ワッチョイ)垢版2017/06/19(月) 02:15:49.66ID:l1liGy+g0
FTPでソースコードをサーバーにアップロードしました。
今までは日付が新しいものだけアップロードしていればよかったんです。

でもあるとき古いバージョンに戻したいと言われました。
どうすればいいでしょうか!

gitにタイムスタンプが保存されていれば
こんなこと悩まなくて住んだのに・・・
0893デフォルトの名無しさん (ワッチョイ)垢版2017/06/19(月) 02:23:17.21ID:ydqJ52nG0
>>892
古いバージョンのブランチをcheckoutして
日付の新しくなったファイルをアップロードすればいい
0894デフォルトの名無しさん (ワッチョイ)垢版2017/06/19(月) 02:24:05.75ID:l1liGy+g0
という話に持っていくにはどうすればいいっすかね?

gitにタイムスタンプが保存されていれば
問題が解決するというロジックが思いつかんのですよ。



普通に考えればgitでチェックアウトしても内容が変わらければ
日付は変わらないし、変わってしまったとしても、新しいとか古いとか関係なく
変わったものだけアップロードすればいいだけですし
0896デフォルトの名無しさん (ワッチョイ)垢版2017/06/19(月) 02:28:47.94ID:l1liGy+g0
>>893
> 古いバージョンのブランチをcheckoutして
> 日付の新しくなったファイルをアップロードすればいい

gitにタイムスタンプを入れたら、古い日付になるじゃないですか!
0897デフォルトの名無しさん (ワッチョイ)垢版2017/06/19(月) 08:25:52.14ID:7LnfDu+V0
>>886>>887
csprojに適切な設定(デフォルト)がされていればビルド時に生成されるはず。
生成されたファイルには「手で編集すんな」って注意書きがある。

>>888
Xamarinの人は自動生成できないからResources.designer.csをリポジトリに入れたら困った。
って話じゃないの?Xamarin知らんから想像だけど。
0901デフォルトの名無しさん (ワッチョイ)垢版2017/06/20(火) 01:46:41.40ID:oes7eN320
MSも csproj とかはわりとマージしやすくなってちょっと Git フレンドリーになったと思ったけど
Xamarinの Resources.designer.cs はダメだな
レイアウト変更で直接 Resources.designer.cs を編集するんじゃなくて
別のxmlファイルでも編集するようにして
ビルド時にそれから Resources.designer.cs を生成してくれるようになれば管理しやすくなるのだが
0902デフォルトの名無しさん (ワッチョイ)垢版2017/06/20(火) 13:48:31.96ID:hObYdPLN0
gitでメタ情報の差分を見る方法を教えてください

パーミッションが違うっぽいんだけど、どう違うかがわかりません
ファイルの内容は同一です
0904デフォルトの名無しさん (JP)垢版2017/06/23(金) 09:03:17.22ID:0OdP20aKH
要するにメルカリで情報流出させるようなDeployしてるのか君らは
0905デフォルトの名無しさん (ワッチョイ)垢版2017/06/24(土) 08:27:16.03ID:oLp/Ttnr0
特定の拡張子を除いてpullする方法、もしくは特定の拡張子だけpullする方法はありますか?
.dbや.logファイルで毎回コンフリクトが起こるので、.dbや.logを除いてpullしたいです
0910デフォルトの名無しさん (ワッチョイ)垢版2017/06/25(日) 17:31:17.74ID:oOuEb/or0
v2.13.2
0911デフォルトの名無しさん (エーイモ)垢版2017/06/29(木) 15:35:16.72ID:clVopv39E
何で中途半端にワッチョイしてんだよ
次スレからIDも表示させようぜ
0914デフォルトの名無しさん (アウアウウー)垢版2017/07/02(日) 18:39:39.43ID:WHNbrfCKa
がんがれ
0919デフォルトの名無しさん (ラクッペ)垢版2017/07/12(水) 09:40:59.43ID:ZKpxP9B+M
git のフローを保つために、間違ったコミットしたりすると物凄く時間をかけて正しくするんだけど、時間の無駄としか思えない。
どこもこういうもの?
0921デフォルトの名無しさん (エーイモ)垢版2017/07/12(水) 11:32:51.89ID:nO7Br/jVE
コミットログは全部updateに統一してます
0925デフォルトの名無しさん (スップ)垢版2017/07/12(水) 13:38:31.87ID:kZPqRL5id
何のためにコミットログを残すか考えれば自ずと答えは出る
レビューのためならレビューアが見やすいように整えるべきだし、自分の為だけなら最低限でも構わない

単なる自己満足ならそれこそ気が済むまでやれば良い
0933デフォルトの名無しさん (ワッチョイ)垢版2017/07/13(木) 23:13:54.24ID:+MqtT0VU0
v2.13.3
0939デフォルトの名無しさん (ワッチョイ)垢版2017/07/18(火) 10:36:28.59ID:/pPGIQYg0
あるファイルいっこだけブランチする ってことはできないの?
0941デフォルトの名無しさん (アウアウウー)垢版2017/07/18(火) 19:24:19.64ID:4iDc2sGUa
ブランチ作ったらファイル消えました
0948デフォルトの名無しさん (エーイモ)垢版2017/07/22(土) 12:47:41.55ID:kynGraMHE
git checkout ref/tags/タグの名前
これで作ったブランチのソースコードをコンパイルするとmasterブランチのときよりもコンパイル時間が約2倍伸びるようになったんですがこういうものですか?
0950デフォルトの名無しさん (ワッチョイ)垢版2017/08/01(火) 21:25:25.84ID:+ITjMzoE0
gcc にパッチ投げようと
git clone --depth 1 git://gcc.gnu.org/git/gcc.git
したけどクソ重いでやんす
sparce-checkout も試してみたけどこれ fetch はツリー全部 fetch してるのかな?
効果があるように思えない
subtree だけ clone する方法ってないもんですかね
0951デフォルトの名無しさん (ワッチョイ)垢版2017/08/01(火) 21:37:17.43ID:+ITjMzoE0
>>939
既存のブランチからヒストリがそのファイルしか含まないブランチを作りたいなら
git filter-branch --tree-filter "find -not -name hoge -print0 | xargs -0 rm"
でできるけどそういうことでなく?
0952デフォルトの名無しさん (ワッチョイ)垢版2017/08/02(水) 00:37:33.07ID:6iOrEu560
masterにマージの終わったブランチを
適宜リポジトリから消していっています。
メンバーのローカルにあったブランチが再プッシュされて
消したブランチが復活してしまったのですが
運用としておかしいですかね?
0955デフォルトの名無しさん (ワッチョイ)垢版2017/08/02(水) 23:27:10.42ID:6iOrEu560
>>953
ありがとうございます。
運用考えます。
0956デフォルトの名無しさん (ワッチョイ)垢版2017/08/03(木) 00:35:40.13ID:PN2+LpQV0
別に運用問題ないと思うんだけど。
単に間違ってpushしたってだけでしょ?
マージ済みなんだから、マージされてるってことはわかるし
0959デフォルトの名無しさん (エーイモ)垢版2017/08/07(月) 00:35:37.00ID:LUHkaOczE
コマンドのヘルプはどうやって見ればいいのでしょうか?
例えばlog
git help log
git --help log
git log --help
どれもヘルプが表示されません
0962959 (エーイモ)垢版2017/08/07(月) 20:34:57.82ID:ZnTA3DbhE
>>960
ubuntuです

git-log というマニュアルはありません
0965デフォルトの名無しさん (ワッチョイ)垢版2017/08/10(木) 03:50:49.14ID:p+YoIwRr0
あるブランチの、あるブランチ(例えばmaster)との差分が
わかる方法ってないですかね?
今は別ディレクトリにクローンしてディレクトリの差分を見ています
0966デフォルトの名無しさん (ササクッテロレ)垢版2017/08/10(木) 09:39:17.39ID:V8qCM+BOp
git diff
0975デフォルトの名無しさん (エーイモ)垢版2017/08/13(日) 12:18:46.98ID:c9WZH2m7E
index.htmlだけをgitで管理してるんですけど
履歴って変更されたファイルの内容全てが記録されていくんでしょうか?
それとも変更された差分だけが記録されていくんでしょうか?
0977デフォルトの名無しさん (エーイモ)垢版2017/08/13(日) 20:27:29.85ID:PJTJnug+E
wikiを作ってて履歴はどうやって管理したらいいのか気になってgitを参考にしようかなと思ってました
0982デフォルトの名無しさん (エーイモ)垢版2017/08/14(月) 18:48:06.99ID:KqSO/1AwE
いいよ立てますよ
普段ここにいないので次スレのテンプレをここに貼り付けてもらえますか
そのとおりコピペするので
0983デフォルトの名無しさん (エーイモ)垢版2017/08/14(月) 18:59:44.32ID:KqSO/1AwE
このスレと同じワッチョイで立てていいですか?
>デフォルトの名無しさん (エーイモ)

一応IDを表示させることもできますけど
デフォルトの名無しさん (エーイモ abcd-efgh)
0987デフォルトの名無しさん (ワッチョイ)垢版2017/08/17(木) 22:37:10.69ID:v7qqrL0Y0
ワッチョイとか設定できるのって2chに課金してる人だけだっけ?
0988デフォルトの名無しさん (ワッチョイ)垢版2017/08/18(金) 13:34:59.21ID:CLfvmGW80
うまい履歴・ブランチの作り方がまとまっている本かサイトある?
どの粒度でコミットしたらいいんだか迷って時間を無駄にしてしまう
0997デフォルトの名無しさん (ワッチョイ)垢版2017/08/19(土) 23:29:19.87ID:9sjMFNW80
コミット粒度のトレードオフは
・細かくコミットすると、意味のあるコミットメッセージを付けるのにコストがかかる
・大きくコミットすると、後で分割したくなった時にコストがかかる
ってことを意識したら良い。

ちょうど良いコミット粒度は、習うより慣れろとしか言えないな。
10011001垢版Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 196日 10時間 10分 37秒
10021002垢版Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況