All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fredrik Gustafsson <iveqy@iveqy.com>
To: Dario Rodriguez <soft.d4rio@gmail.com>
Cc: Fredrik Gustafsson <iveqy@iveqy.com>,
	Git Mailing List <git@vger.kernel.org>
Subject: Re: Checkout first version of each file?
Date: Tue, 8 Nov 2011 16:00:07 +0100	[thread overview]
Message-ID: <20111108150007.GA5261@kolya> (raw)
In-Reply-To: <CABLeVKFkSP=2-kwsN4N+oLrPnijkpvV8Ki=Si4dpYXdzc+8ibQ@mail.gmail.com>

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@iveqy.com> 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@vger.kernel.org
> >> 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@iveqy.com
> > 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@iveqy.com
Tel. nr.: 0733 60 82 74

  reply	other threads:[~2011-11-08 15:00 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-08 13:58 Checkout first version of each file? Dario Rodriguez
2011-11-08 14:02 ` Fredrik Gustafsson
2011-11-08 14:17   ` Dario Rodriguez
2011-11-08 15:00     ` Fredrik Gustafsson [this message]
2011-11-08 17:20       ` Dario Rodriguez
2011-11-08 18:15       ` Andreas Schwab
2011-11-08 18:49         ` Dario Rodriguez
2011-11-08 17:44 ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111108150007.GA5261@kolya \
    --to=iveqy@iveqy.com \
    --cc=git@vger.kernel.org \
    --cc=soft.d4rio@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.