mainSavannah Administration - Support: sr #108761, Please allow Non-Fast-Forward...

 
 

sr #108761: Please allow Non-Fast-Forward commits for GNU ccd2cue's Git repository

Submitter:  Bruno Félix Rezende Ribeiro <oitofelix>
Submitted:  Thu 05 Mar 2015 06:25:20 AM UTC
   
 
Category:  Source code repositories - developer access Priority:  5 - Normal
Severity:  5 - Blocker Status:  Done
Privacy:  Public Assigned to:  agn
Operating System:  GNU/Linux Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Mon 09 Mar 2015 02:07:41 AM UTC, comment #5: 

Hello Bruno,

I've now disabled non-fast-forward commits in ccd2cue,
and closing this item.

If there are still issues, please let us know.

regards,
 - Assaf

Assaf Gordon <agn>
Site Administrator
Thu 05 Mar 2015 07:38:03 PM UTC, comment #4: 

Hello Bruno,

I've experimented with several cvs conversion tools, and for me, cvs-fast-export failed the least :)

If you do end up writing the article, I'd be happy to add it to the Savannah Wiki.

If it helps in any way to your article, this is how I'd convert the CVS repository:


====

## Download, Install CVS-FAST-EXPORT
$ wget http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export-1.29.tar.gz
$ tar -xf cvs-fast-export-1.29.tar.gz
$ cd cvs-fast-export-1.29
$ make
$ sudo make install

## Get CVS repostiory from Savannah
$ rsync -r rsync://cvs.savannah.gnu.org/sources/ccd2cue .
$ ls ccd2cue/
ccd2cue  CVSROOT

## Find author IDs in CVS logs
$ find ccd2cue -type f | cvs-fast-export -a
oitofelix

## Manually prepare author-map file, one entry for each author
$ printf "oitofelix=Bruno Félix Rezende Ribeiro <oitofelix@gnu.org>\n" > author-map.txt

## Convert CVS to git-fast-import file
$ find ccd2cue -type f | cvs-fast-export -A author-map.txt > ccd2cue.git-fast-import

## Prepare empty GIT repository
$ git init --bare ccd2cue.git
Initialized empty Git repository in /home/gordon/sources/cvs-convert/ccd2cue.git/
$ cd ccd2cue.git

## Run Git-Fast-Import
$ git fast-import < ../ccd2cue.git-fast-import
git-fast-import statistics:
---------------------------------------------------------------------
Alloc'd objects:       5000
Total objects:          803 (        22 duplicates                  )
      blobs  :          374 (        21 duplicates        302 deltas of        351 attempts)
      trees  :          277 (         1 duplicates        239 deltas of        257 attempts)
      commits:          152 (         0 duplicates          0 deltas of          0 attempts)
      tags   :            0 (         0 duplicates          0 deltas of          0 attempts)
Total branches:           5 (         1 loads     )
      marks:           1024 (       546 unique    )
      atoms:             95
Memory total:          2344 KiB
       pools:          2110 KiB
     objects:           234 KiB
---------------------------------------------------------------------
pack_report: getpagesize()            =       4096
pack_report: core.packedGitWindowSize = 1073741824
pack_report: core.packedGitLimit      = 8589934592
pack_report: pack_used_ctr            =        431
pack_report: pack_mmap_calls          =        153
pack_report: pack_open_windows        =          1 /          1
pack_report: pack_mapped              =     618860 /     618860
---------------------------------------------------------------------

## Examine Git repository
$ git log | head -n 13
commit a695d7eb6a2972b60b9be386e75c7d34d7905197
Author: Bruno Félix Rezende Ribeiro <oitofelix@gnu.org>
Date:   Tue Feb 11 17:13:46 2014 +0000

    Add missing parameter to 'error' function call.  Bug first noticed by
    Rosa <rosa@abf.rosalinux.ru>.

commit 9d4ad7c96b372e3892d691761d695659087270e4
Author: Bruno Félix Rezende Ribeiro <oitofelix@gnu.org>
Date:   Sun Jan 26 03:08:54 2014 +0000

    Added link to Savannah download area where the oldest (non-GNU)
    releases can be found.
====


Regards,
 - Assaf

Assaf Gordon <agn>
Site Administrator
Thu 05 Mar 2015 05:30:54 PM UTC, comment #3: 

Sorry, I forgot to mention: I fixed the issue!  I think this ticket may be closed.

Bruno Félix Rezende Ribeiro <oitofelix>
Thu 05 Mar 2015 05:28:47 PM UTC, comment #2: 

Thank you Assaf for your promptness!  I understand the issues of permanently enabled NFF commits.  I really hope to never again have the need to edit the repository's history.  I've used the cvs2git tool (of the cvs2svn package), but I noticed the author naming issue too late, after pushing the repository to Savannah, otherwise I could have mapped the author ID upon conversion.  I'm thinking about writing an article about the process of conversion from CVS to GIT on Savannah.  If I happen to do that, I will let Savannah users know. :-)

Bruno Félix Rezende Ribeiro <oitofelix>
Thu 05 Mar 2015 02:55:45 PM UTC, comment #1: 

Hello Bruno,

Savannah's policy is to generally disallow non-fast-forward commits (see "on-Fast-Forward commits" section at http://savannah.gnu.org/maintenance/UsingGit/  ).

But since this is a new repository and all but the last few commits (dated March 5th) also appear in the CVS repository, non-fast-forward commits can be  temporarily enabled, with the assumption you will commit the same code again, and no code will be lost.
NFF commits will be disabled again within a day or so

This should allow enough to to fix the problem.

Let us know if there are other issues.

Please not that once significant code is committed to the git repository, NFF will not be enabled in the future to avoid the possibility of deleting code from savannah.

- Assaf

P.S.
For cvs-to-git conversions, I can recommend "cvs-fast-export" ( http://www.catb.org/~esr/cvs-fast-export/cvs-fast-export.html ) which also supports author ID mapping.
I have tested it on many CVS repositories on Savannah it and seems to work very well.

P.P.S.
Savannah admins,
I've made a copy of the current git repository in 'vsc:/srv/git/ccd2cue.git-disabled', will remove it once the ticket is closed, and issues of code loss are resolved.

Assaf Gordon <agn>
Site Administrator
Thu 05 Mar 2015 06:25:20 AM UTC, original submission:  

After migrating from CVS and making some commits I decided to modify the repository's history in order to proper name the author (me) in all old commits from the original CVS repository.  For that end I used 'git filter-branch'.  However I was unable to push all changes because of Savannah's Non-Fast-Forward commits policy.  Then I ended up with "duplicated" commits for the entire history.  Could you enable NFF commits for the GNU ccd2cue's repository?

Bruno Félix Rezende Ribeiro <oitofelix>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by agn (Posted a comment)
  • -email is unavailable- added by oitofelix (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2015-03-09 agn StatusIn Progress Done
        Open/ClosedOpen Closed
    2015-03-05 agn StatusNone In Progress
        Assigned toNone agn

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code