Re: [PATCH v6 15/16] remote-svn: add marks-file regeneration

2012-08-25 Thread Joachim Schmitz
Florian Achleitner florian.achleitner.2.6...@gmail.com schrieb im 
Newsbeitrag
news:1345662961-9587-16-git-send-email-florian.achleitner.2.6...@gmail.com...
 fast-import mark files are stored outside the object database and are
 therefore not fetched and can be lost somehow else.  marks provide a
 svn revision -- git sha1 mapping, while the notes that are attached
 to each commit when it is imported provide a git sha1 -- svn revision
 mapping.
 
 If the marks file is not available or not plausible, regenerate it by
 walking through the notes tree.  , i.e.  The plausibility check tests
 if the highest revision in the marks file matches the revision of the
 top ref. It doesn't ensure that the mark file is completely correct.
 This could only be done with an effort equal to unconditional
 regeneration.
 
 Signed-off-by: Florian Achleitner florian.achleitner.2.6...@gmail.com
 Signed-off-by: Junio C Hamano gits...@pobox.com
 ---
  remote-testsvn.c |   68 
 ++
  1 file changed, 68 insertions(+)
 
 diff --git a/remote-testsvn.c b/remote-testsvn.c
 index e90d221..09dc304 100644
 --- a/remote-testsvn.c
 +++ b/remote-testsvn.c
...
 +static void check_or_regenerate_marks(int latestrev) {
 + FILE *marksfile;
 + char *line = NULL;
 + size_t linelen = 0;
 + struct strbuf sb = STRBUF_INIT;
 + int found = 0;
 +
 + if (latestrev  1)
 + return;
 +
 + init_notes(NULL, notes_ref, NULL, 0);
 + marksfile = fopen(marksfilename, r);
 + if (!marksfile) {
 + regenerate_marks();
 + marksfile = fopen(marksfilename, r);
 + if (!marksfile)
 + die_errno(cannot read marks file %s!, marksfilename);
 + fclose(marksfile);
 + } else {
 + strbuf_addf(sb, :%d , latestrev);
 + while (getline(line, linelen, marksfile) != -1) {

getline() is not available to anybody, e.g. it is not in HP NonStop.

Bye, Jojo

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


RE: [PATCH v6 15/16] remote-svn: add marks-file regeneration

2012-08-25 Thread Joachim Schmitz
 From: Joachim Schmitz [mailto:j...@schmitz-digital.de]
 Sent: Saturday, August 25, 2012 5:55 PM
 To: 'florian.achleitner.2.6...@gmail.com'
 Cc: git@vger.kernel.org
 Subject: Re: [PATCH v6 15/16] remote-svn: add marks-file regeneration
 
 Florian Achleitner florian.achleitner.2.6...@gmail.com schrieb im 
 Newsbeitrag news:1345662961-9587-16-git-send-email-
 florian.achleitner.2.6...@gmail.com...
  fast-import mark files are stored outside the object database and are
  therefore not fetched and can be lost somehow else.  marks provide a
  svn revision -- git sha1 mapping, while the notes that are attached
  to each commit when it is imported provide a git sha1 -- svn revision
  mapping.
 
  If the marks file is not available or not plausible, regenerate it by
  walking through the notes tree.  , i.e.  The plausibility check tests
  if the highest revision in the marks file matches the revision of the
  top ref. It doesn't ensure that the mark file is completely correct.
  This could only be done with an effort equal to unconditional
  regeneration.
 
  Signed-off-by: Florian Achleitner florian.achleitner.2.6...@gmail.com
  Signed-off-by: Junio C Hamano gits...@pobox.com
  ---
   remote-testsvn.c |   68 
  ++
   1 file changed, 68 insertions(+)
 
  diff --git a/remote-testsvn.c b/remote-testsvn.c
  index e90d221..09dc304 100644
  --- a/remote-testsvn.c
  +++ b/remote-testsvn.c
 ...
  +static void check_or_regenerate_marks(int latestrev) {
  +   FILE *marksfile;
  +   char *line = NULL;
  +   size_t linelen = 0;
  +   struct strbuf sb = STRBUF_INIT;
  +   int found = 0;
  +
  +   if (latestrev  1)
  +   return;
  +
  +   init_notes(NULL, notes_ref, NULL, 0);
  +   marksfile = fopen(marksfilename, r);
  +   if (!marksfile) {
  +   regenerate_marks();
  +   marksfile = fopen(marksfilename, r);
  +   if (!marksfile)
  +   die_errno(cannot read marks file %s!, marksfilename);
  +   fclose(marksfile);
  +   } else {
  +   strbuf_addf(sb, :%d , latestrev);
  +   while (getline(line, linelen, marksfile) != -1) {
 
 getline() is not available to anybody, e.g. it is not in HP NonStop.

I'd like to confirm that Ramsey's patch works for me too, so I second his 
request.
(Subject: [PATCH 1/3] remote-testsvn.c: Avoid the getline() GNU extension 
function)

Bye, Jojo

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