Full Video Transcript

Welcome back to part two of this video going over basic file operations, as well as some more advanced things like rolling back changes, reverting changes, and reconciling off offline work. If you haven't watched part one yet and you're not familiar with P4V, I definitely recommend going back and checking out that one. But without further ado, let's get into it. Now let's talk about what to do if I made some changes and I don't want them, maybe I broke something and I want to go back. 

That's one of the other nice things about checking files out before you work on them. So let's take another example here where let's say I'm working on this, let's say this add new tool image at the top here. I'm going to check out this file. You'll see 

now it gets added to my default Changelist in my pending tab, and I have that red check mark here that lets everyone know I'm working on this, most of all myself. And now I can open it directly from here with open, or I could even just navigate to that inside of my explorer, however I want to do it. And in this case, I'm going to open this with, uh, let's open this with paint, right? I'm just using simple examples right now, just so we don't get distracted from the core of this. 

And let's say I did this and I realized, ah, shoot, you know what? I was trying to make this nice annotation to make this so clear. But I've already hit save and you can see my, my thumbnail updated here. I’m like, ah, I can't, oh, I can't undo. 

Oh, shoot. Oh man, I've really messed it up. What do I do? If I have not submitted this yet, 

what I can do is I can come here and click on that file, either in the Changelist here or over in my workspace view, and if I right click on it and say revert, what that's gonna do is it's going to get rid of any changes that I've made after whatever I got from the server. So in this case, I'm just gonna say revert, and it's gonna have a little popup for me to confirm this, where I can see, yep, that's the file I want to revert, and I've done an edit to it. That's what I'm going to revert. That's worth noting because it could also be a delete or an add. 

And generally it's safest to leave these unchecked here. So I'm gonna say revert and you'll see now it's not checked out anymore. You'll see my thumbnail magically updated over here. If I open it, I'll see 

all my scribbles are gone. I'm back to that pristine state where I was before. So this makes it really nice for being able to experiment with something, try something out if it doesn't work, knowing that you can just erase those changes and get back to where you were without having to just rely on undos or saving extra copies of files with different names or, or things like that. Let's take an example now where I've done the same thing and I've, again, I've saved, I made that change. 

You can see my thumbnails updated and then I did submit it. Now, this hopefully doesn't happen, and at your studio, this may be a case where you want to talk to an admin about this, but I just wanna show you that there's this option. If I do submit this and I say, added great illustrations to this image, maybe I haven't realized yet that I've done a bad job and I've submitted this, and you'll see now I'm on version two of two of that new tool. And if I go to my submitted, I'll see check this now and see does the project work? Does everything look okay? If it does, then maybe I want to submit this and actually truly undo all the way back to this point. I still have that other history, but I'm kind of saying, no, this is now the latest. 

Let's take a step back. Or as we mentioned before, I can always revert if I don't want this. Right click here and say revert files again, it'll prompt me and I'll say, yes, revert again. I'm leaving these unchecked. 

Read the options. They're pretty self-explanatory, but I'm just going to say revert here. And you can see now I'm back. All the files are back. 

So something to keep in mind is that even if you were to do something silly, like come along here in your explorer and just like hit delete. I just deleted all of those. And you can come in here and go, oh, shoot. Oh no, I deleted everything. 

Oh gosh, what have I done? Oh, no, what's happening? That stuff all still exists on the server. So another beautiful thing about this is it makes it very hard for you to completely break everything for everybody. 

You know, you can still inconvenience people, so hopefully you're a good citizen here, but in this case, if I accidentally did that, what I could do is I can right click on this root folder again and I'm gonna say, get revision. So instead of saying get latest, I'm just gonna say, get revision. And this brings up a dialogue where by default it's set to get latest, which is how it was before. That's great. 

And what I can do is I can click this force operation, and what that will do is it will force redownload everything. So if I'm really worried, I've screwed it all up, that's an option I can do. And you can see it redownload all of these files. 

Now keep in mind, if you have a big project, that could take a little while and ideally you're not doing that super often, but just know that there's a lot of safety 

now I have a second Changelist that I've submitted where I added these great illustrations to this image. But I realize this is bad and I need to get back to a previous one. If I want to do that for this one file, I can right click and go down to undo revision. And what's going to happen here is that, first of all, it's going to confirm which file it is 

I'm undoing, and I have a few options here. So one is to undo a single change while keeping subsequent changes, which for an image file doesn't really have any meaning. That mostly just shows up for text files where I can just remove a change in the middle of a series of changes. This is a little bit more complicated. 

So generally speaking, undo all changes from a selected point to the most recent version will be more often what you'll do where you just say, I want to get back to how it was at a certain point. So in this case, we're on revision two of two, so I wanna undo all changes beginning from revision two up to now, which is two. Right? So what happens here is I'll hit save Changelist and now in my pending, I have a new Changelist. 

That is doing the opposite of what I did before. And you'll see we have this new icon here that says marked for integrate. So that means I'm taking something from the past and instead I'm kind of moving that back up to be the latest version here. So in this case, you'll see I’m just doing this one file. 

If I open it now, you'll see that it doesn't have the scribbles anymore because I'm integrating back that revision one on top of revision two. So remember with all of this, your history is permanent, like that's always going to be there in the history that that change was made at some point. But I'm going to undo that by essentially redoing how it used to be. So just something to kind of wrap your head around a little bit there. 

Let me show you one other way to do this. I'm going to hit revert here to say like, okay, nevermind. I didn't wanna do that. I'm just gonna say revert and click revert. 

Great. That's gone. You'll see in this case it left an empty Changelist. If that happens, I can just right click here and say delete pending Changelist. 

I like to do that just to keep things clean and orderly in here. And now let's go back again and what I can also do is undo an entire Changelist. So in that case, I just did one particular file. I could also go back here and say, I wanna undo changes in Changelist 150. 

And in this case, this is just going to undo all of those changes. And I'm gonna say, yeah. Much simpler option there. And you can see in my pending, I now have this new Changelist that in this case, is the same thing as it was before. 

It's that same integrate from the first revision, but that's just another way to do it. That can be easier if you made a bunch of changes all at once and you wanna undo all of those. That's a way you can do that. So in this case, let's go ahead and submit this and you'll see it auto fills with what it's doing in this case. 

Undoing that Changelist there. One other thing to note here is that we could even do this for an entire folder. So let's say somebody made changes and, and everything's broken today, but we know that it worked earlier today, let's say that we know that this worked at 2:00 PM today and it doesn't now. What's the deal? 

We could come here and right click on images and say, I want to undo changes. And again, I want to do undo changes from a selected point to the most recent version. So I'm gonna undo everything, get us back to where we were at that point. Instead of saying revision, I can actually even pick a date and time and I can change this and say, I want to get back to how it was at at 2:00 PM because I know it worked at that point. 

And I'm gonna say, yep, save to Changelist. And it'll give me a little warning here if it's gonna delete some files to do this. I’ll just say, okay, and you can see now this is what my project looked like at 2:00 PM today. 

It didn't have any of these files. I hadn't added those yet. And so to get back to that state, it's gonna delete all those. In reality, this would look different for you, but again, I could do that. 

There are measures in place here so you don't screw things up, which I love. When using Helix Core, the ideal workflow is that before I work on something, I check this file out. So if I wanna work on these files, I would come here, select them all and check them out. Or I could do that at the folder level and maybe I just want to check out everything that's inside that folder. 

And what that does is it adds it to my default Changelist here and shows everyone else that I'm working on these files and helps me stay organized, makes it so they're writeable, all those things. But this doesn't always happen. So I'm gonna come here and revert these files and I'll also delete my other Changelist just to clean it up so we can see here nothing's checked out. Few things. 

One is, let's say that I open one of these files and I did a bad thing. So let's say I used some other tool that just forced overriding this. So in this example here, let's say that I, I drew on this file here and in this case it won't let me save it cause I don't have it checked out. So it's right protected, but I can fake that. 

So let's say I saved it as something else. And then I came in here manually and I just deleted this other one. And then this one I renamed it. So I kind of worked around the system and if I come into P4V here, hit refresh. 

You'll see it doesn't know that I changed that because it's meant to be declarative that you would declare your intent to work on something before you actually work on it there. And so in this case, you'll see that that hasn't happened. It doesn't know about it. Where this most often shows up is if I'm using some kind of automated tool that maybe generates more files or edits some files, and I'm not directly interacting with those myself. 

What we can do here is what's called reconcile offline work. So if I want to do this for my whole project, I click on my root folder here and right click and say reconcile offline work. What happens when I do that is it brings up this window and if you have a really big project, this might take a little bit because it's comparing all of these files against what exists on the server and seeing if any of them are different. 

In this case, what it did is it noticed, hey, this file here is different, so it's modified from where it was before. If I’d added a file that would show up here, or if I had deleted a file and not told the system about it, it would show up down here so that if I just say reconcile it then adds that change to my default Changelist here and I'm all good to go. Now let's revert and go back. Here's another example. 

I need to add a new group of files to this. Let's say I have this, this other folder of images, so I just pasted these in here. You can see these are some new images here. And again, if I click here on refresh, you'll see it shows up, but they're not in my default Changelist. 

So if I know exactly where they are, what I can do is I can come along here and I can click add and that will add all those new files. Or again, if I'm like, I don't remember, maybe I added some and I edited some others, I'm not quite sure what happened. I can again come up here, right click reconcile offline work. Or maybe I know, you know what, I know what happened in this images folder. 

So here, let me first revert these files. Now, I added these files. If I have this check mark checked that says delete files that are open for add from the workspace on revert, that will actually delete those files when I do this revert. But if I leave that unchecked and I say revert, what happens is it removes them from that pending Changelist, but it doesn't actually delete the files out of that folder. 

So something to keep in mind, depending, you know, sometimes you want one and sometimes you want the other. But let's say I couldn't remember where I'd added these, right? Imagine I've got a hundreds of folders and I don't know where that one is. I can come up here and just say, reconcile offline work. 

And it detected, oh look, these files here are new. All right, let me cancel this. And let's say I came in and deleted those files there. Again, I didn't do it through P4V, so it doesn't know about it. 

I refreshed, they're gone, but they're not here on my Changelist. So if I go here and I say reconcile offline work, it detects that I deleted these three files and that I added these other ones here. And then I could say reconcile, and then it puts all that into my default Changelist here. So submit this and I'll say added images folder and deleted some stuff. 

This is a bad description, but ideally yours would be a little more reasonable. I can see here on my submitted Changelists, added images folder and deleted some stuff. If I look here, I can see all the files that were part of that Changelist. And now let's go over to my other machine here, and if I hit refresh, I get that little yellow icon showing me that there's updates here I haven't gotten yet. 

So let's come up and say, get latest. And I can see all those files disappeared, got deleted off my system, and this images folder with these images has been added. Now you might go, oh shoot, I’ve lost those files. Oh no, this is terrible. 

Remember that the whole history of everything is stored on your server and you can get back to it. So in this case, if I go here and I will look at all the Changelists submitted by anyone, and I can see that this one here is the one that added those images. So what I could do is come along and undo that as we've covered in another video. I could undo those changes, which will bring them back. 

Or if I wanted to just temporarily see how it was before, what I could do is come up here. And so I know that 154 is where this change happened and I'm like, wait, I thought there were files there. What did this used to look like? What I can do is I can say, well, 152 is what it was before, and I can tell that by looking at my submitted Changelists here. 

And if I come up here and I say, get revision, I can then specify I want to get Changelist 152 or I could even browse. And if I browse and make this a little bigger, I can see those descriptions that go with it. So yeah, I'll say I want 152 and I'm gonna say, yep, get revision. one thing to note that I just forgot here is that when you do this and you specify revision using Changelists, so 152 that 

this checkbox here only get revisions for files listed in Changelist. What that means is if I look at this Changelist here, it's only going to get the previous version of this file, this add new tool .png, which in this case, which already have that latest, so no files updated is what it told me down here in the log. Now if I go back to here and I uncheck that, it will get all files as they were at 152. So I'm gonna say get revision, and you can see now, boop, those files are back and this images folder now is empty. 

So that folder stuck around, but those files are gone. If you don't like having these orphaned empty folders, if you go to connection and edit current workspace in your advanced settings, This setting here, rmdir says, delete workspace directories when empty. That'll make it so if a change happens where that folder becomes empty, it will delete that folder. You may or may not want that, I usually do. 

So if I have that checked here and let's say I go back to get latest and then I'm going to say again, get revision. And I have this unchecked, so it's gonna get everything back to the way that it was in 152. And I hit get revision. And you can see this time it actually deleted that folder there. 

So that's just a handy little setting. Now you'll notice that I can see all these files as they were back then, but they have that little yellow triangle on them showing me that I'm not at the latest, so I can't be editing these and then submitting changes back to the server. To do that, I need to be on the latest. Now, if it's like, this is a problem, this needs to get fixed, that's where we would do an undo and we would actually get back those changes. 

So in this case, I'm gonna say, yeah, I didn't want to do that. I want to keep these new images that I added, but I want to undo the deleting I did of those files. So I can go to my Changelist here, 154, and I can see by the little X, it's a little small on this screen, but with that little X there, these means these were deleted. What I can do here is right click and say, I want to undo changes in this Changelist. 

And I'm just gonna say, yeah, save to Changelist. So don't submit right away. I'm gonna say save to Changelist. And yep, it's gonna mark that it's gonna delete some files. 

It’s just kinda warning me, be careful before you submit this. If I go to pending, I'll see I have my undo Changelist that it's created for me. And I have these ones that have this little branch marked because these got deleted and I'm gonna add them back in. And these ones that I added that I'm going to delete in order to undo this change. 

But in this case, I don't want to do that. So I'm gonna select all these deletes and I'm gonna say revert, and I’m gonna say, yep, revert. Now what I've said is, Hey, don't, don't delete those files, bring those back. But I do want to undodeleting these. So in this case I'm gonna say submit and yep, undo to get back files and I'll say, submit. And now you can see I have these files again. And now if I switch back to my other user here on Windows, I can see that if I come up here and say, get latest, I now have these files back again. 

So you can see how these things can work really well for going back and forth between different places and also can really work well for transferring changes between your own computers or between completely remote sites where you can kind of get everything ready, submit it, and then someone who is maybe at a different studio could then sync that change and they can get all those latest in a nice package and they can actually see your little note about what you did when you did it, as well as what files were changed there. I hope that was helpful for all of you out there. Feel free to reach out with more questions and let us know what you'd like to see in the future. 

Course - Getting Started with Helix Core - For Collaborators