Re: for newbs = little exercise / tutorial / warmup for windows and other non-sophisticated new Git users :-) [Scanned]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday 2008 December 30 16:55:38 Conor Rafferty wrote:
> Whoa there Stevey, I'm a windows user, don't forget

I just assumed you were also a git user. ;)

> However if this is what its gonna take to get what I want, then Im'
> outta here.

You aren't being entirely clear about what you want.

> Getting a snapshot on the filesystem, in terms of a directory tree (not
> a reference to, representation of etc etc. but a real life directory
> tree, files and folders that you can actually interact with - build,
> edit etc.), of a past version is a basic operation in my book.
> Even in clearcase this was a cinch.

Well, there's a lot of things about UNIX and Windows directories that git 
doesn't store.  It'll restore the contents, sure, but not the permissions, 
timestamps, etc.  However git also stores the *history*, if you don't care 
about that, tarballs or zip archives might actually be a better system for 
your purposes.

But, each time you commit you've made some snapshot (completeness depends on 
what you staged with git add and friends) and recorded that snapshot as 
a "later point in time" from the last snapshot you "git checkout"ed.  That 
new object (a "commit") can be identified by it's sha1.  It holds a sha1 of 
all it's parents (also "commits") and of the snapshot alone (a "tree").

You've also figured out how to use lightweight tags to give names (other than 
their sha1) to your commits.

> Is there anyone who can see anyway to do this simply, without a script,
> without creating a branch ?

Branching is arguably easier than tagging, and probably what you want to do 
instead.  Sure, branches are mutable, but unsigned tags are also fairly 
mutable.

> Personally I suspect "$ git checkout <version> ." is what should be
> doing this.

I'm pretty sure what you want is "git checkout <version>" not "git checkout 
<version> <paths>".  They operate differently.  Modern git can checkout a 
lightweight tag, but it's going to warn you that it not what you want.

> - but if you want ppl out there in the user world to take this stuff on,
> its gotta work for them

Maybe others do, but I don't really see git as an end-user tool.  It's a 
developer tool and rightly demands a bit of RTFMing before using it 
effectively.

What you seem to *really* want is a bunch of named trees without any 
relationship between one another.  IMHO, git isn't really good at that (but 
only because it demands to do more).  A directory full of tarballs / 
zip-archives and a couple of scripts you wrote yourself (extract.sh; 
name-and-save.sh) would probably be better.

I admit that there seems to be quite a niche for some sort of trivially usable 
VCS, but it needs to be good at merging spreadsheets, compressed/binary XML, 
presentations/decks, and other things not-text, have a pretty GUI, and run 
securely over TCP/IP ports that no one is willing to block.  It will probably 
be next to useless for doing what git was initially designed for (managing 
Linux kernel patches).
-- 
Boyd Stephen Smith Jr.                     ,= ,-_-. =. 
bss@xxxxxxxxxxxxxxxxx                     ((_/)o o(\_))
ICQ: 514984 YM/AIM: DaTwinkDaddy           `-'(. .)`-' 
http://iguanasuicide.net/                      \_/     

Attachment: signature.asc
Description: This is a digitally signed message part.


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux