Re: Checkout first version of each file?

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

 



On Tue, Nov 8, 2011 at 12:00 PM, Fredrik Gustafsson <iveqy@xxxxxxxxx> wrote:
> On Tue, Nov 08, 2011 at 11:17:27AM -0300, Dario Rodriguez wrote:
>> On Tue, Nov 8, 2011 at 11:02 AM, Fredrik Gustafsson <iveqy@xxxxxxxxx> wrote:
>> > On Tue, Nov 08, 2011 at 10:58:05AM -0300, Dario Rodriguez wrote:
>> >> Hello,
>> >>
>> >> My "issue" comes with my usage of git at work. I work with lots of
>> >> applications, each of them part of each system. There are lots of
>> >> processes and lots of subsystems, so I never clone the entire repo
>> >> into GIT, since it could be painful and slow. Even if I do so,
>> >> everyone else is using ClearCase, and their changes cannot be included
>> >> into my git repo until they "chickin". Sometimes, I must update
>> >> sources from FTP because the changes are not up to date in
>> >> ClearCase...
>> >>
>> >> So, I clone every file that I will need to work into GIT, so i can
>> >> work with these files having a better control (With ClearCase it's a
>> >> foolish "checkout>>lots of changes>>checkin" flow). But sometimes I
>> >> don't know how many files I am going to change until I start coding
>> >> the requisites.
>> >>
>> >> In this cases, there is a situation that I don't know how to handle.
>> >> If I need to rollback every change made to every file I cannot just
>> >> checkout the initial commit, cause I've added files after that, and I
>> >> need their initial versions too.
>> >>
>> >> So, how can I checkout the first version of each file? (I know that
>> >> GIT tracks contents and not files, but the fact is that I need to keep
>> >> track on files, it's the real thing I work with)
>> >>
>> >> pd: Sorry about my Argentinian-English (if it sounds so)
>> >>
>> >> Thanks,
>> >> Dario
>> >> --
>> >> To unsubscribe from this list: send the line "unsubscribe git" in
>> >> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> >> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> >
>> > Is all files present in your latest commit? Or can there be deleted
>> > files that you also need to recover?
>> >
>> > --
>> > Med vänliga hälsningar
>> > Fredrik Gustafsson
>> >
>> > E-post: iveqy@xxxxxxxxx
>> > Tel. nr.: 0733 60 82 74
>> >
>>
>> Every file in the latest working tree is also a tracked file. The
>> files are being added to the git repo, but not removed from it.
>>
>> In other words, the biggest set of files is the latest working tree,
>> and the smallest one is the first commit.
>>
>> Dario
>
> I can't see a pure git way of doing this. However, you already seem to
> use git in a very hackish-way. So here's a quick n' dirty solution (that
> is not very efficient).
>
> (not tested example code, that should be runned from the root-gitdir.):
>
> #!/bin/sh
> git reset --hard HEAD
> for f in `find`
> do
>        commit=`git log $f | grep commit | tail -1`
>        git checkout $commit $f
> done
>
> --
> Med vänliga hälsningar
> Fredrik Gustafsson
>
> E-post: iveqy@xxxxxxxxx
> Tel. nr.: 0733 60 82 74
>

Yes, it's similar to my approach, except that I used 'git ls-files'
and 'git log --format=%H' to get the commit hash for each file
instead. Seems dirty, but reasonable if you think the git way.

Thank you,
Dario
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[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]