GithubHelp home page GithubHelp logo

Comments (16)

dolanor avatar dolanor commented on June 2, 2024

If I type
git branch -f master
In my repository, it tells me the same
fatal: Not a valid object name: 'master'.

same for
git branch -f master2
=> fatal: Not a valid object name: 'master'.

I guess git branch -f master2 tries to create a branch master2 after the current commit of the master branch. But it doesn't seem to exists

from git-cc.

charleso avatar charleso commented on June 2, 2024

Hi Dolanor,

The problem here is my error reporting. Basically the entire 'rebase' process ran and didn't commit anything. Git needs to have at least one commit before you can do anything interesting (like create branches).

What does your 'branches' configuration look like in the .gitcc config file?

Cheers,

Charles

from git-cc.

charleso avatar charleso commented on June 2, 2024

When you see:

cleartool diff -diff_format -pred

That's looking for changes to a directory. Git doesn't track directories. To have files you are looking for an output like:

cleartool get -to some/file@/main/1

from git-cc.

dolanor avatar dolanor commented on June 2, 2024

Thanks for the quick reply here is my .git/gitcc

[master]
clearcase = /vob/daproject

from git-cc.

charleso avatar charleso commented on June 2, 2024

Actually I'm afraid I'm still stumped. I can't see the initial lshistory command listed above Are you using 'rebase --load' with an lshistory.bak file? Or have you 'edited' the snippet you pasted?

Either way, but not specifying branches in the .gitcc file you should be picking up the /main branch.

Is /vob/daproject//src/Makefile a file or a folder? From above git-cc seems to think it's a folder. If you look at .lshistory.bak can you see a line containing that file? Does it have checkinversion or ``checkindirectory version at the start? Does any file havecheckinversion`?

Actually one thought did occur to me - there might be an error being masked here. Try changing the doCommit() method to the following (ie remove the finally block):

doCommit():
    branch = getCurrentBranch()
    if branch:
        git_exec(['checkout', CC_TAG])
    commit(cs)

I'm sorry I can't be much help.

from git-cc.

dolanor avatar dolanor commented on June 2, 2024

I loaded the history (too many commits otherwise. the history is ~746000 lines long) with rebase --load
The first ct command at the "beginning" (at the end of the lshistory file) are mkelemdirectory. The "first" (last in file) checkin which is a checkindirectory is at line ~738000.

I've launched the version with your doCommit() version. I'll update with the result

from git-cc.

dolanor avatar dolanor commented on June 2, 2024

With your doCommit, I got this. My view is static :

Traceback (most recent call last):
  File "/home/myUser/git-cc/gitcc", line 51, in ?
    main()
  File "/home/myUser/git-cc/gitcc", line 14, in main
    return invoke(cmd, args)
  File "/home/myUser/git-cc/gitcc", line 41, in invoke
    cmd.main(*args)
  File "/home/myUser/git-cc/rebase.py", line 55, in main
    doStash(lambda: doCommit(cs), stash)
  File "/home/myUser/git-cc/common.py", line 38, in doStash
    f()
  File "/home/myUser/git-cc/rebase.py", line 55, in <lambda>
    doStash(lambda: doCommit(cs), stash)
  File "/home/myUser/git-cc/rebase.py", line 66, in doCommit
    commit(cs)
  File "/home/myUser/git-cc/rebase.py", line 149, in commit
    cs.commit()
  File "/home/myUser/git-cc/rebase.py", line 186, in commit
    file.add(files)
  File "/home/myUser/git-cc/rebase.py", line 215, in add
    self._add(self.file, self.version)
  File "/home/myUser/git-cc/rebase.py", line 223, in _add
    removeFile(toFile)
  File "/home/myUser/git-cc/common.py", line 146, in removeFile
    os.remove(file)
OSError: [Errno 30] Read-only file system: '/vob/daproject//JUNK/2011_and_before/subdirs.old'

from git-cc.

charleso avatar charleso commented on June 2, 2024

Hi Dolanor,

Are you still running git-cc in your Clearcase directory? git-cc needs to be run in a directory where it can modify files so it can recreate the history.

Charles

from git-cc.

dolanor avatar dolanor commented on June 2, 2024

No, my static view is in /vob/daproject and the git import dir where I call the git-cc is in /home/myUser/git-cc-import

from git-cc.

charleso avatar charleso commented on June 2, 2024

Hmm, that doesn't really correspond with the error I'm seeing:

toFile = path(join(GIT_DIR, file))

GIT_DIR should be the root of the current git directory, and file is the relative path to JUNK/2011_and_before/subdirs.old. Maybe put some print statements around that line and see what both those variables are.

from git-cc.

dolanor avatar dolanor commented on June 2, 2024

I created a new import, still using my lshistory.bak and changing the directory of the import.
Yes I edited the log just to avoid some privacy issue, but the FS address remains coherent I think.
I added the output in the end

> git ls-files --modified
> git log -n 1 --pretty=format:%ai master_cc
> cleartool ls -recurse -short .
> git branch
> cleartool diff -diff_format -pred /vob/daproject//src@@/main/1
> cleartool lshistory -fmt %o%m|%Nd|%Vn\n /vob/daproject//src/Makefile
> cleartool describe -fmt %Nd /vob/daproject//src@@/main/1
It appears that you may be missing a branch in the includes section of your gitcc config for file '/vob/daproject//src/Makefile'.
> cleartool diff -diff_format -pred /vob/daproject//JUNK/2011_and_before/README@@/main/1
> cleartool diff -diff_format -pred /vob/daproject//src/apps@@/main/1
> cleartool diff -diff_format -pred /vob/daproject//src/arith@@/main/1
> cleartool lshistory -fmt %o%m|%Nd|%Vn\n /vob/daproject//src/arith/Makefile
> cleartool describe -fmt %Nd /vob/daproject//src/arith@@/main/1
It appears that you may be missing a branch in the includes section of your gitcc config for file '/vob/daproject//src/arith/Makefile'.
> cleartool diff -diff_format -pred /vob/daproject//src/backoff@@/main/1
> cleartool diff -diff_format -pred /vob/daproject//JUNK/2011_and_before/bin@@/main/1
> cleartool diff -diff_format -pred /vob/daproject//src/common@@/main/1
> cleartool diff -diff_format -pred /vob/daproject//src/db@@/main/1
> cleartool diff -diff_format -pred /vob/daproject//src/finance@@/main/1
> cleartool diff -diff_format -pred /vob/daproject//src/libdbg@@/main/1
> cleartool diff -diff_format -pred /vob/daproject//src/models@@/main/1
> cleartool diff -diff_format -pred /vob/daproject//JUNK/2011_and_before/object.old@@/main/1
> cleartool diff -diff_format -pred /vob/daproject//src/risk@@/main/1
GIT_DIR : '/home/myUser/newImportDir', file : '/vob/daproject//JUNK/2011_and_before/subdirs.old'
Traceback (most recent call last):
  File "/home/myUser/git-cc/gitcc", line 51, in ?
    main()
  File "/home/myUser/git-cc/gitcc", line 14, in main
    return invoke(cmd, args)
  File "/home/myUser/git-cc/gitcc", line 41, in invoke
    cmd.main(*args)
  File "/home/myUser/git-cc/rebase.py", line 52, in main
    doStash(lambda: doCommit(cs), stash)
  File "/home/myUser/git-cc/common.py", line 38, in doStash
    f()
  File "/home/myUser/git-cc/rebase.py", line 52, in <lambda>
    doStash(lambda: doCommit(cs), stash)
  File "/home/myUser/git-cc/rebase.py", line 63, in doCommit
    commit(cs)
  File "/home/myUser/git-cc/rebase.py", line 146, in commit
    cs.commit()
  File "/home/myUser/git-cc/rebase.py", line 183, in commit
    file.add(files)
  File "/home/myUser/git-cc/rebase.py", line 212, in add
    self._add(self.file, self.version)
  File "/home/myUser/git-cc/rebase.py", line 221, in _add
    removeFile(toFile)
  File "/home/myUser/git-cc/common.py", line 146, in removeFile
    os.remove(file)
OSError: [Errno 30] Read-only file system: '/vob/daproject//JUNK/2011_and_before/subdirs.old'

GIT_DIR : '/home/myUser/newImportDir', file : '/vob/daproject//JUNK/2011_and_before/subdirs.old'

from git-cc.

charleso avatar charleso commented on June 2, 2024

Hi Dolandor,

Apologies. I thought you were running git-cc from the wrong place. Turns out join in Python doesn't quite do what I expect it to do. join('/a', '/b') will return /b not /a/b. So the problem is that file is absolute, not relative. I'm wondering why that's different for you and how they ended up like that.

In any case you need to strip off the leading '/vob/daproject//' from each file. You can either do that manually by editing lshistory.bak or modifying the python rebase.py file.

Good luck,
Charles

from git-cc.

dolanor avatar dolanor commented on June 2, 2024

It worked !
But the project is too big to be imported, Clearcase stopped seeing revision in the git-cc way of doing things. So I could only import 33 commits on 500k and so the history stays 17 years before…
For that, I modified my lshistory.bak instead of modifying rebase.py

Anyway, I still adapted the gitcc script to work on RedHat 5 without a 2.6 python.
dolanor@c6f0346

from git-cc.

charleso avatar charleso commented on June 2, 2024

Hey, so does mean you imported all your history after fixing lshistory.bak? Are you switching to Git now, or do you still have to use Clearcase officially?

My apologies that things were so painful, but I hope you can stay on Git now. :)

from git-cc.

dolanor avatar dolanor commented on June 2, 2024

I've switched project. Full git for now. They want us to work on TFS or SVN.
We don't give a damn because we will continue on git until we need to release something… Then we will make a major push, and that's it.

from git-cc.

charleso avatar charleso commented on June 2, 2024

Right on! FYI there are (better) Git bridge tools for both SVN and TFS, and Microsoft actually released the new version of TFS with Git support.

In any case I can't believe people are still using anything but Git these days. Best of luck.

from git-cc.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.