Git Product home page Git Product logo

Comments (7)

siprbaum avatar siprbaum commented on June 11, 2024

I am not sure that duplicating the folder and then making it a branch will allow git-tfs to import correctly.

I would suggest to try to git tfs clone --branches=none with the old location of your dev folder if your are only interested
of importing the dev folder including its history.

from git-tfs.

lgoens-se avatar lgoens-se commented on June 11, 2024

I tried running the command you suggested on the original and noticed that when it finished it did not have all of the subfolders under our Dev folder. In looking at the log file, I see thousands of lines of "get" logs, then at some point about half way through, the "get" changed to "D" in the log statement. The first statement after this change reads:

2023-06-19 10:47:46.9016 [Debug] D Dirs_Release.props

Then every line after that includes the "D" and a file path to files in the Dev folder. I noticed in the local repo, it appears that the files with "D" in the log were not pulled into my repo. Again, approximately half the files had "D" in the log output so I presume that approximately half my files were not cloned.

I'm quite confused as to what's causing this.

from git-tfs.

siprbaum avatar siprbaum commented on June 11, 2024

I assume (but I am not sure) that the D stand for deleted. You should see the changeset which is imported. Maybe look at the history and try to figure out what is done there in TFS?

from git-tfs.

lgoens-se avatar lgoens-se commented on June 11, 2024

The files are not deleted. They are still in TFS and they are part of our Dev folder. It just acts like Git TFS skips all of those files but I don't know why. I'm not convinced the "D" means anything is deleted - to me it is just not "getting" anything more from TFS.

I was able to clone my entire Dev folder ("get" for all files) with the command mentioned in my original post - but the issue there is that it does not include the comments for all TFS changeset check-ins - and that is the one thing we are after in migrating to Git. The only history it would show in git was comments related to the branching changeset - which we don't use - so we have no meaningful history.

To me, my question is simple: Does Git TFS support getting the check-in comment from ALL changesets in TFS and showing that somewhere in Git history?

If yes, what are issues with TFS that might prevent Git TFS from reading / processing them?

from git-tfs.

siprbaum avatar siprbaum commented on June 11, 2024

[Edited to fix formating]

To me, my question is simple: Does Git TFS support getting the check-in comment from ALL changesets in TFS and showing that somewhere in Git history?

It should to able to support getting all changesets from the TFS history of that folder.
But only if the changeset was created on the Branch.

Assume the following

$/SomeProject/Main with Changsets 1,2,3,4 and a Branch $/SomeProject/Dev is created based on Changeset 4 from $/SomeProject/Main (as Changeset 5). Furthermore, in Dev, Changeset 6 and 7 are created

If you are cloning with git tfs clone --branches=none only on $/SomeProject/Dev, then you would only receive
Changesets 6 and 7 in addition to Changeset 5 which is creating the branch. But you would not get Changeset 1-4, as they
are not on the folder you are cloning.

Does this answer your question?

from git-tfs.

lgoens-se avatar lgoens-se commented on June 11, 2024

Thanks for the detailed explanation (and for previous replies).

To use your example, I'm basically doing...
git tfs clone --branches=none $/SomeProject/Main

This gives me a warning before running:

warning: you are going to clone the whole repository or too high in the repository path !
   => If you want to manage branches with git-tfs, clone one of this branch instead :

After the warning, it lists out some branches that are under "SomeProject" - but they are not what I want to migrate to Git.

What I want to clone actually is "Main" where "Main" is the equivalent of our "Dev" folder. It is a folder in TFS and not a branch.

The problem here is that while running, it seems to stop using the "get" command in the debug output and changes to "D" as mentioned earlier. The thousands of debug output lines look something like this:

get [C128384] $/<project name>/Dev/<folder path and filename>

C128384 is the original check-in/changeset for this Dev folder so it makes me think git tfs is in the right place, but I can't explain why it's having trouble completing - OR, what it means when it switches from "get" to "D" in the log. I attempted this clone again yesterday and the same thing happens. Also of note, when the get/D change happens, the changeset number is no longer in the log statement. Additionally, there is a significant delay (1.5 hours) in time when this happens as well.

image

I understand your explanation and it sounds like an answer to my question, but the execution isn't matching the expectation I guess.

from git-tfs.

siprbaum avatar siprbaum commented on June 11, 2024

The message is coming from here:

var cloneMsg = " => If you want to manage branches with git-tfs, clone one of this branch instead :\n"

What you could do is building git-tfs yourself and the try to debug the clone of the problematic changeset.

I know that this is probably not what you want to hear, but I guess without further analysis of history it is impossible
analyze this remotely :-(

from git-tfs.

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.